NAME MooseX::Types::DateTime::W3C - W3C DateTime format type constraint VERSION version 1.103360 SYNOPSIS package My::Class; use Moose; use MooseX::Types::DateTime::W3C qw( DateTimeW3C ); has 'datetime' => ( is => 'rw', isa => DateTimeW3C, coerce => 1, ); package main; my $obj = My::Class->new(); # YYYY $obj->datetime('1997'); # YYYY-MM $obj->datetime('1997-07'); # YYYY-MM-DD $obj->datetime('1997-07-16'); # YYYY-MM-DDThh:mmTZD $obj->datetime('1997-07-16T19:20'); $obj->datetime('1997-07-16T19:20Z'); $obj->datetime('1997-07-16T19:20+01:00'); # YYYY-MM-DDThh:mm:ssTZD $obj->datetime('1997-07-16T19:20:30'); $obj->datetime('1997-07-16T19:20:30Z'); $obj->datetime('1997-07-16T19:20:30+01:00'); # YYYY-MM-DDThh:mm:ss.sTZD $obj->datetime('1997-07-16T19:20:30.45'); $obj->datetime('1997-07-16T19:20:30.45Z'); $obj->datetime('1997-07-16T19:20:30.45+01:00'); # coercion from DateTime objects use DateTime; $obj->datetime( DateTime->new( year => 1997, month => 7, day => 16, hour => 19, minute => 20, second => 30, time_zone => 'UTC' ) ); # same as 1997-07-16T19:20:30Z # coercion from Num $obj->datetime( time() ); # exported functions # is_DateTimeW3C - validate my $w3cdtf_string = '1997-07-16T19:20:30.45Z'; if ( is_DateTimeW3C($w3cdtf_string) ) { # yes, it is ... } # to_DateTimeW3C - coerce $w3cdtf_string = to_DateTimeW3C( DateTime->now ); $w3cdtf_string = to_DateTimeW3C( time() ); DESCRIPTION This class provides W3C date/time format type constraint. TYPES DateTimeW3C has 'datetime' => ( is => 'rw', isa => DateTimeW3C, coerce => 1, ); "DateTimeW3C" is a subtype of "Str" validated against format described at . Coercion is supported from DateTime objects and numbers (treated as time in seconds since unix epoch). $obj->datetime( DateTime->now ); $obj->datetime( time() ); Please note that time coerced from "Num" will be in "UTC" time zone. EXPORTS In addition to type constraint following functions are exported: is_DateTimeW3C if ( is_DateTimeW3C($w3cdtf_string) ) { ... } Tests if given value is a valid W3C DateTime string. to_DateTimeW3C # from DateTime object $w3cdtf_string = to_DateTimeW3C( DateTime->now ); # from number $w3cdtf_string = to_DateTimeW3C( time() ); Coerce given value into valid W3C DateTime string. Note: nanoseconds are added only if != 0. Note: numbers are converted into DateTime objects in UTC time zone. SEE ALSO * * MooseX::Types AUTHOR Alex J. G. Burzyński COPYRIGHT AND LICENSE This software is copyright (c) 2010 by Alex J. G. Burzyński . This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.