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.
CONSTRAINTS
- ISO8601DateStr
-
An ISO8601 date string. E.g.
2009-06-11
- ISO8601TimeStr
-
An ISO8601 time string. E.g.
12:06Z
- ISO8601DateTimeStr
-
An ISO8601 combined datetime string. E.g.
2009-06-11T12:06Z
- ISO8601DateDurationStr
-
An ISO8601 date duration string. E.g.
P01Y01M01D
- from
Num
-
The number is treated as a time in seconds
- from
DateTime::Duration
-
The duration represented as a DateTime::Duration object.
- from
- ISO8601TimeDurationStr
-
An ISO8601 time duration string. E.g.
PT01H01M01S
- from
Num
-
The number is treated as a time in seconds
- from
DateTime::Duration
-
The duration represented as a DateTime::Duration object.
- from
- ISO8601DateTimeDurationStr
-
An ISO8601 comboined date and time duration string. E.g.
P01Y01M01DT01H01M01S
- from
Num
-
The number is treated as a time in seconds
- from
DateTime::Duration
-
The duration represented as a DateTime::Duration object.
- from
SEE ALSO
VERSION CONTROL
http://github.com/bobtfish/moosex-types-iso8601/tree/master
BUGS
Probably full of them, patches are very welcome.
Specifically missing features:
- No coercions for times yet
- No timezone support - all times are assumed UTC
- No week number type
- Tests are rubbish.
AUTHOR
Tomas Doran (t0m) <bobtfish@bobtfish.net>
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.