ISO 8601 times and duration strings, with coercions from DateTimes
Fetching latest commit…
Cannot retrieve the latest commit at this time
NAME MooseX::Types::ISO8601 - ISO8601 date and duration string type constraints and coercions for Moose SYNOPSIS 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) ) DESCRIPTION This module packages several TypeConstraints with coercions for working with ISO8601 date strings and the DateTime suite of objects. DATE CONSTRAINTS ISO8601DateStr An ISO8601 date string. E.g. "2009-06-11" ISO8601TimeStr An ISO8601 time string. E.g. "12:06:34Z" ISO8601DateTimeStr An ISO8601 combined datetime string. E.g. "2009-06-11T12:06:34Z" COERCIONS The date types will coerce from: " Num " The number is treated as a time in seconds since the unix epoch " DateTime " The duration represented as a DateTime object. DURATION CONSTRAINTS ISO8601DateDurationStr An ISO8601 date duration string. E.g. "P01Y01M01D" ISO8601TimeDurationStr An ISO8601 time duration string. E.g. "PT01H01M01S" ISO8601DateTimeDurationStr An ISO8601 comboined date and time duration string. E.g. "P01Y01M01DT01H01M01S" COERCIONS The duration types will coerce from: " Num " The number is treated as a time in seconds " DateTime::Duration " The duration represented as a DateTime::Duration object. The duration types will coerce to: " Duration " A DateTime::Duration, i.e. the " Duration " constraint from MooseX::Types::DateTime. SEE ALSO * MooseX::Types::DateTime * DateTime * DateTime::Duration * DateTime::Format::Duration VERSION CONTROL http://github.com/bobtfish/moosex-types-iso8601/tree/master Patches are welcome. SEE ALSO * http://en.wikipedia.org/wiki/ISO_8601 * http://dotat.at/tmp/ISO_8601-2004_E.pdf BUGS Probably full of them, patches are very welcome. Specifically missing features: No timezone support - all times are assumed UTC No week number type Tests are rubbish. AUTHOR Tomas Doran (t0m) "<email@example.com>" The development of this code was sponsored by my employer <http://www.state51.co.uk>. COPYRIGHT 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.