MooseX::Types::ISO8601 - ISO8601 date and duration string type constraints and coercions for Moose
use MooseX::Types::ISO8601 qw/ ISO8601TimeDurationStr /; has duration => ( isa => ISO8601TimeDurationStr, is => 'ro', coerce => 1, ); Class->new( duration => 60 ); # 60s => PT00H01M00S Class->new( duration => DateTime::Duration->new(%args) )
This module packages several TypeConstraints with coercions for working with ISO8601 date strings and the DateTime suite of objects.
An ISO8601 date string. E.g.
An ISO8601 time string. E.g.
An ISO8601 combined datetime string. E.g.
The date types will coerce from:
The number is treated as a time in seconds since the unix epoch
The duration represented as a DateTime object.
An ISO8601 date duration string. E.g.
An ISO8601 time duration string. E.g.
An ISO8601 comboined date and time duration string. E.g.
The duration types will coerce from:
The number is treated as a time in seconds
The duration represented as a DateTime::Duration object.
The duration types will coerce to:
Patches are welcome.
Probably full of them, patches are very welcome.
Specifically missing features:
Tomas Doran (t0m)
The development of this code was sponsored by my employer http://www.state51.co.uk.
Copyright (c) 2009 Tomas Doran. Some rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.