The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

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.

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.

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.

SEE ALSO

MooseX::Types::DateTime
DateTime
DateTime::Duration
DateTime::Format::Duration

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.