The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

MooseX::Types::ISO8601 - ISO8601 date and duration string type constraints and coercions for Moose

VERSION

version 0.15

SYNOPSIS

use MooseX::Types::ISO8601 qw/
    ISO8601DateTimeStr
    ISO8601TimeDurationStr
/;

has datetime => (
    is => 'ro',
    isa => ISO8601DateTimeStr,
);

has duration => (
    is => 'ro',
    isa => ISO8601TimeDurationStr,
    coerce => 1,
);

Class->new( datetime => '2012-01-01T00:00:00' );

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.

NAME

MooseX::Types::ISO8601 - ISO8601 date and duration string type constraints and coercions for Moose

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

ISO8601DateTimeTZStr

An ISO8601 combined datetime string with a fully specified timezone. E.g. 2009-06-11T12:06:34+00:00

ISO8601StrictDateStr

ISO8601StrictTimeStr

ISO8601StrictDateTimeStr

ISO8601StrictDateTimeTZStr

As above, only in addition to validating the strings against regular expressions, an attempt is made to actually parse the data into a DateTime object. This will catch cases like 2013-02-31 which look correct but do not correspond to real-world values. Note that this bears a computation penalty.

COERCIONS

The date types will coerce from:

DURATION CONSTRAINTS

ISO8601DateDurationStr

An ISO8601 date duration string. E.g. P01Y01M01D

ISO8601TimeDurationStr

An ISO8601 time duration string. E.g. PT01H01M01S

ISO8601DateTimeDurationStr

An ISO8601 combined date and time duration string. E.g. P01Y01M01DT01H01M01S

COERCIONS

The duration types will coerce from:

The duration types will coerce to:

FEATURES

Fractional seconds

If provided, the number of seconds in time types is represented to microsecond accuracy. A full stop character is used as the decimal separator, which is allowed, but deprecated in preference to the comma character in ISO 8601:2004.

BUGS

Probably full of them, patches are very welcome.

Specifically missing features:

SEE ALSO

VERSION CONTROL

http://github.com/bobtfish/moosex-types-iso8601/tree/master

Patches are welcome.

AUTHOR

The development of this code was sponsored by my employer http://www.state51.co.uk.

Contributors

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.

AUTHOR

Tomas Doran (t0m) bobtfish@bobtfish.net

COPYRIGHT AND LICENSE

This software is copyright (c) 2009 by Tomas Doran.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.

CONTRIBUTORS