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) "<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.