What if you want to change the date
package Time;
use Moose;
use Moose::Util::TypeConstraints;
use DateTime;
subtype 'DateTime'
=> as Object
=> where { $_->isa('DateTime') };
coerce 'DateTime'
=> from 'HashRef'
=> via { DateTime->new( %{ $_ } ) }
=> from Int
=> via { DateTime->from_epoch(epoch => $_) };
has 'time' => (
is => 'rw',
isa => 'DateTime',
coerce => 1,
default => sub {
DateTime->now();
}
);
continued...