class_type 'DateTime'; subtype 'My::Model::Support::Ticket::Str' => as 'Str'; subtype 'My::Model::Support::Ticket::Int' => as 'Int'; coerce 'DateTime', from 'My::Model::Support::Ticket::Str', via { DateTime::Format::DateParse->parse_datetime($_) }; coerce 'DateTime', from 'My::Model::Support::Ticket::Int', via { DateTime->from_epoch( epoch => $_ ) }; ... has created_time => ( is => 'rw', isa => 'DateTime', required => 0, coerce => 1, );