|
Packit |
106d3f |
#!/usr/bin/perl
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
# Copyright (C) 2003-2005 Joshua Hoblitt
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
use strict;
|
|
Packit |
106d3f |
use warnings;
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
use lib qw( ./lib );
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
use Test::More tests => 174;
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
use DateTime::Format::ISO8601;
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
# parse_datetime
|
|
Packit |
106d3f |
my $base_year = 2000;
|
|
Packit |
106d3f |
my $base_month = "01";
|
|
Packit |
106d3f |
my $iso8601 = DateTime::Format::ISO8601->new(
|
|
Packit |
106d3f |
base_datetime => DateTime->new( year => $base_year, month => $base_month ),
|
|
Packit |
106d3f |
);
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#YYYYMMDD 19850412
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '19850412' );
|
|
Packit |
106d3f |
is( $dt->ymd, '1985-04-12' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#YYYY-MM-DD 1985-04-12
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '1985-04-12' );
|
|
Packit |
106d3f |
is( $dt->ymd, '1985-04-12' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#YYYY-MM 1985-04
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '1985-04' );
|
|
Packit |
106d3f |
is( $dt->ymd, '1985-04-01' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#YYYY 1985
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '1985' );
|
|
Packit |
106d3f |
is( $dt->ymd, '1985-01-01' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#YY 19 (century)
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '19' );
|
|
Packit |
106d3f |
is( $dt->ymd, '1901-01-01' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#YYMMDD 850412
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '850412' );
|
|
Packit |
106d3f |
is( $dt->ymd, '1985-04-12' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#YY-MM-DD 85-04-12
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '85-04-12' );
|
|
Packit |
106d3f |
is( $dt->ymd, '1985-04-12' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#-YYMM -8504
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '-8504' );
|
|
Packit |
106d3f |
is( $dt->ymd, '1985-04-01' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#-YY-MM -85-04
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '-85-04' );
|
|
Packit |
106d3f |
is( $dt->ymd, '1985-04-01' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#-YY -85
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '-85' );
|
|
Packit |
106d3f |
is( $dt->year, '1985' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#--MMDD --0412
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '--0412' );
|
|
Packit |
106d3f |
is( $dt->ymd, "${base_year}-04-12" );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#--MM-DD --04-12
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '--04-12' );
|
|
Packit |
106d3f |
is( $dt->ymd, "${base_year}-04-12" );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#--MM --04
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '--04' );
|
|
Packit |
106d3f |
is( $dt->ymd, "${base_year}-04-01" );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#---DD ---12
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '---12' );
|
|
Packit |
106d3f |
is( $dt->ymd, "${base_year}-${base_month}-12" );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#+[YY]YYYYMMDD +0019850412
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '+0019850412' );
|
|
Packit |
106d3f |
is( $dt->ymd, '1985-04-12' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#+[YY]YYYY-MM-DD +001985-04-12
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '+001985-04-12' );
|
|
Packit |
106d3f |
is( $dt->ymd, '1985-04-12' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#+[YY]YYYY-MM +001985-04
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '+001985-04' );
|
|
Packit |
106d3f |
is( $dt->ymd, '1985-04-01' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#+[YY]YYYY +001985
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '+001985' );
|
|
Packit |
106d3f |
is( $dt->ymd, '1985-01-01' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#+[YY]YY +0019 (century)
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '+0019' );
|
|
Packit |
106d3f |
is( $dt->ymd, '1901-01-01' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#YYYYDDD 1985102
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '1985102' );
|
|
Packit |
106d3f |
is( $dt->ymd, '1985-04-12' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#YYYY-DDD 1985-102
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '1985-102' );
|
|
Packit |
106d3f |
is( $dt->ymd, '1985-04-12' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#YYDDD 85102
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '85102' );
|
|
Packit |
106d3f |
is( $dt->ymd, '1985-04-12' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#YY-DDD 85-102
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '85-102' );
|
|
Packit |
106d3f |
is( $dt->ymd, '1985-04-12' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#-DDD -102
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '-102' );
|
|
Packit |
106d3f |
my $year = sprintf( "%04i", $base_year );
|
|
Packit |
106d3f |
is( $dt->strftime( "%j" ), 102 );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#+[YY]YYYYDDD +001985102
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '+001985102' );
|
|
Packit |
106d3f |
is( $dt->ymd, '1985-04-12' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#+[YY]YYYY-DDD +001985-102
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '+001985-102' );
|
|
Packit |
106d3f |
is( $dt->ymd, '1985-04-12' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#YYYYWwwD 1985W155
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '1985W155' );
|
|
Packit |
106d3f |
is( $dt->ymd, '1985-04-12' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#YYYY-Www-D 1985-W15-5
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '1985-W15-5' );
|
|
Packit |
106d3f |
is( $dt->ymd, '1985-04-12' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#YYYYWww 1985W15
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '1985W15' );
|
|
Packit |
106d3f |
is( $dt->ymd, '1985-04-08' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#YYYY-Www 1985-W15
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '1985-W15' );
|
|
Packit |
106d3f |
is( $dt->ymd, '1985-04-08' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#YYWwwD 85W155
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '85W155' );
|
|
Packit |
106d3f |
is( $dt->ymd, '1985-04-12' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#YY-Www-D 85-W15-5
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '85-W15-5' );
|
|
Packit |
106d3f |
is( $dt->ymd, '1985-04-12' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#YYWww 85W15
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '85W15' );
|
|
Packit |
106d3f |
is( $dt->ymd, '1985-04-08' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#YY-Www 85-W15
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '85-W15' );
|
|
Packit |
106d3f |
is( $dt->ymd, '1985-04-08' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#-YWwwD -5W155
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '-5W155' );
|
|
Packit |
106d3f |
is( $dt->year, '2005' );
|
|
Packit |
106d3f |
is( $dt->week_number, '15' );
|
|
Packit |
106d3f |
is( $dt->day_of_week, '5' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#-Y-Www-D -5-W15-5
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '-5-W15-5' );
|
|
Packit |
106d3f |
is( $dt->year, '2005' );
|
|
Packit |
106d3f |
is( $dt->week_number, '15' );
|
|
Packit |
106d3f |
is( $dt->day_of_week, '5' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#-YWww -5W15
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '-5W15' );
|
|
Packit |
106d3f |
is( $dt->year, '2005' );
|
|
Packit |
106d3f |
is( $dt->week_number, '15' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#-Y-Www -5-W15
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '-5-W15' );
|
|
Packit |
106d3f |
is( $dt->year, '2005' );
|
|
Packit |
106d3f |
is( $dt->week_number, '15' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#-WwwD -W155
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '-W155' );
|
|
Packit |
106d3f |
is( $dt->week_number, '15' );
|
|
Packit |
106d3f |
is( $dt->day_of_week, '5' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#-Www-D -W15-5
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '-W15-5' );
|
|
Packit |
106d3f |
is( $dt->week_number, '15' );
|
|
Packit |
106d3f |
is( $dt->day_of_week, '5' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
# {
|
|
Packit |
106d3f |
# #-Www -W15
|
|
Packit |
106d3f |
# my $dt = $iso8601->parse_datetime( '-W15' );
|
|
Packit |
106d3f |
# is( $dt->week_number, '15' );
|
|
Packit |
106d3f |
# }
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#-W-D -W-5
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '-W-5' );
|
|
Packit |
106d3f |
is( $dt->day_of_week, '5' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#+[YY]YYYYWwwD +001985W155
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '+001985W155' );
|
|
Packit |
106d3f |
is( $dt->ymd, '1985-04-12' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#+[YY]YYYY-Www-D +001985-W15-5
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '+001985-W15-5' );
|
|
Packit |
106d3f |
is( $dt->ymd, '1985-04-12' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#+[YY]YYYYWww +001985W15
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '+001985W15' );
|
|
Packit |
106d3f |
is( $dt->ymd, '1985-04-08' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#+[YY]YYYY-Www +001985-W15
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '+001985-W15' );
|
|
Packit |
106d3f |
is( $dt->ymd, '1985-04-08' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#hh:mm:ss 23:20:50
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '23:20:50' );
|
|
Packit |
106d3f |
is( $dt->hms, '23:20:50' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#hh:mm 23:20
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '23:20' );
|
|
Packit |
106d3f |
is( $dt->hms, '23:20:00' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#hhmmss,ss 232050,5
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '232050,5' );
|
|
Packit |
106d3f |
is( $dt->hms, '23:20:50' );
|
|
Packit |
106d3f |
is( $dt->nanosecond, 500_000_000 );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#hh:mm:ss,ss 23:20:50,5
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '23:20:50,5' );
|
|
Packit |
106d3f |
is( $dt->hms, '23:20:50' );
|
|
Packit |
106d3f |
is( $dt->nanosecond, 500_000_000 );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#hhmm,mm 2320,8
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '2320,8' );
|
|
Packit |
106d3f |
is( $dt->hms, '23:20:48' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#hh:mm,mm 23:20,8
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '23:20,8' );
|
|
Packit |
106d3f |
is( $dt->hms, '23:20:48' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#hh,hh 23,3
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '23,3' );
|
|
Packit |
106d3f |
is( $dt->hms, '23:18:00' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#-mm:ss -20:50
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '-20:50' );
|
|
Packit |
106d3f |
is( $dt->minute, '20' );
|
|
Packit |
106d3f |
is( $dt->second, '50' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#-mmss,s -2050,5
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '-2050,5' );
|
|
Packit |
106d3f |
is( $dt->minute, '20' );
|
|
Packit |
106d3f |
is( $dt->second, '50' );
|
|
Packit |
106d3f |
is( $dt->nanosecond, 500_000_000 );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#-mm:ss,s -20:50,5
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '-20:50,5' );
|
|
Packit |
106d3f |
is( $dt->minute, '20' );
|
|
Packit |
106d3f |
is( $dt->second, '50' );
|
|
Packit |
106d3f |
is( $dt->nanosecond, 500_000_000 );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#-mm,m -20,8
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '-20,8' );
|
|
Packit |
106d3f |
is( $dt->minute, '20' );
|
|
Packit |
106d3f |
is( $dt->second, '48' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#--ss,s --50,5
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '--50,5' );
|
|
Packit |
106d3f |
is( $dt->second, '50' );
|
|
Packit |
106d3f |
is( $dt->nanosecond, 500_000_000 );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#hhmmssZ 232030Z
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '232030Z' );
|
|
Packit |
106d3f |
is( $dt->hms, '23:20:30' );
|
|
Packit |
106d3f |
is( $dt->time_zone->name, 'UTC' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#hhmmss.ssZ 232030.5Z
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '232030.5Z' );
|
|
Packit |
106d3f |
is( $dt->hms, '23:20:30' );
|
|
Packit |
106d3f |
is( $dt->nanosecond, 500_000_000 );
|
|
Packit |
106d3f |
is( $dt->time_zone->name, 'UTC' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#hh:mm:ssZ 23:20:30Z
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '23:20:30Z' );
|
|
Packit |
106d3f |
is( $dt->hms, '23:20:30' );
|
|
Packit |
106d3f |
is( $dt->time_zone->name, 'UTC' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#hhmmssZ 23:20:30.5Z
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '23:20:30.5Z' );
|
|
Packit |
106d3f |
is( $dt->hms, '23:20:30' );
|
|
Packit |
106d3f |
is( $dt->nanosecond, 500_000_000 );
|
|
Packit |
106d3f |
is( $dt->time_zone->name, 'UTC' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#hhmmZ 2320Z
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '2320Z' );
|
|
Packit |
106d3f |
is( $dt->hms, '23:20:00' );
|
|
Packit |
106d3f |
is( $dt->time_zone->name, 'UTC' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#hh:mmZ 23:20Z
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '23:20Z' );
|
|
Packit |
106d3f |
is( $dt->hms, '23:20:00' );
|
|
Packit |
106d3f |
is( $dt->time_zone->name, 'UTC' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#hhZ 23Z
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '23Z' );
|
|
Packit |
106d3f |
is( $dt->hms, '23:00:00' );
|
|
Packit |
106d3f |
is( $dt->time_zone->name, 'UTC' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#hhmmss[+/-]hhmm 152746+0100 152746-0500
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '152746+0100' );
|
|
Packit |
106d3f |
is( $dt->hms, '15:27:46' );
|
|
Packit |
106d3f |
is( $dt->time_zone->name, '+0100' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#hhmmss[+/-]hhmm 152746+0100 152746-0500
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '152746-0500' );
|
|
Packit |
106d3f |
is( $dt->hms, '15:27:46' );
|
|
Packit |
106d3f |
is( $dt->time_zone->name, '-0500' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#hhmmss.ss[+/-]hhmm 152746.5+0100 152746.5-0500
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '152746.5+0100' );
|
|
Packit |
106d3f |
is( $dt->hms, '15:27:46' );
|
|
Packit |
106d3f |
is( $dt->nanosecond, 500_000_000 );
|
|
Packit |
106d3f |
is( $dt->time_zone->name, '+0100' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#hhmmss.ss[+/-]hh:mm 152746.5+01:00 152746.5-05:00
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '152746.5-05:00' );
|
|
Packit |
106d3f |
is( $dt->hms, '15:27:46' );
|
|
Packit |
106d3f |
is( $dt->nanosecond, 500_000_000 );
|
|
Packit |
106d3f |
is( $dt->time_zone->name, '-0500' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#hhmmss[+/-]hh:mm 152746.05+01:00 152746.05-05:00
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '152746.05-05:00' );
|
|
Packit |
106d3f |
is( $dt->hms, '15:27:46' );
|
|
Packit |
106d3f |
is( $dt->nanosecond, 50_000_000 );
|
|
Packit |
106d3f |
is( $dt->time_zone->name, '-0500' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#hh:mm:ss[+/-]hh:mm 15:27:46+01:00 15:27:46-05:00
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '15:27:46+01:00' );
|
|
Packit |
106d3f |
is( $dt->hms, '15:27:46' );
|
|
Packit |
106d3f |
is( $dt->time_zone->name, '+0100' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#hh:mm:ss[+/-]hh:mm 15:27:46+01:00 15:27:46-05:00
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '15:27:46-05:00' );
|
|
Packit |
106d3f |
is( $dt->hms, '15:27:46' );
|
|
Packit |
106d3f |
is( $dt->time_zone->name, '-0500' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#hhmmss.ss[+/-]hhmm 15:27:46.5+0100 15:27:46.5-0500
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '15:27:46.5+0100' );
|
|
Packit |
106d3f |
is( $dt->hms, '15:27:46' );
|
|
Packit |
106d3f |
is( $dt->nanosecond, 500_000_000 );
|
|
Packit |
106d3f |
is( $dt->time_zone->name, '+0100' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#hh:mm:ss.ss[+/-]hh:mm 15:27:46.5+01:00 15:27:46.5-05:00
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '15:27:46.5-05:00' );
|
|
Packit |
106d3f |
is( $dt->hms, '15:27:46' );
|
|
Packit |
106d3f |
is( $dt->nanosecond, 500_000_000 );
|
|
Packit |
106d3f |
is( $dt->time_zone->name, '-0500' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#hhmmss[+/-]hh 152746+01 152746-05
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '152746+01' );
|
|
Packit |
106d3f |
is( $dt->hms, '15:27:46' );
|
|
Packit |
106d3f |
is( $dt->time_zone->name, '+0100' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#hhmmss[+/-]hh 152746+01 152746-05
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '152746-05' );
|
|
Packit |
106d3f |
is( $dt->hms, '15:27:46' );
|
|
Packit |
106d3f |
is( $dt->time_zone->name, '-0500' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#hh:mm:ss[+/-]hh 15:27:46+01 15:27:46-05
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '15:27:46+01' );
|
|
Packit |
106d3f |
is( $dt->hms, '15:27:46' );
|
|
Packit |
106d3f |
is( $dt->time_zone->name, '+0100' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#hh:mm:ss[+/-]hh 15:27:46+01 15:27:46-05
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '15:27:46-05' );
|
|
Packit |
106d3f |
is( $dt->hms, '15:27:46' );
|
|
Packit |
106d3f |
is( $dt->time_zone->name, '-0500' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#YYYYMMDDThhmmss 19850412T101530
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '19850412T101530' );
|
|
Packit |
106d3f |
is( $dt->iso8601, '1985-04-12T10:15:30' );
|
|
Packit |
106d3f |
is( $dt->time_zone->name, 'floating' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#YYYY-MM-DDThh:mm:ss 1985-04-12T10:15:30
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '1985-04-12T10:15:30' );
|
|
Packit |
106d3f |
is( $dt->iso8601, '1985-04-12T10:15:30' );
|
|
Packit |
106d3f |
is( $dt->time_zone->name, 'floating' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#YYYYMMDDThhmmss.ss 19850412T101530.5
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '19850412T101530.5' );
|
|
Packit |
106d3f |
is( $dt->iso8601, '1985-04-12T10:15:30' );
|
|
Packit |
106d3f |
is( $dt->nanosecond, 500_000_000 );
|
|
Packit |
106d3f |
is( $dt->time_zone->name, 'floating' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#YYYY-MM-DDThh:mm:ss.ss 1985-04-12T10:15:30.5
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '1985-04-12T10:15:30.5' );
|
|
Packit |
106d3f |
is( $dt->iso8601, '1985-04-12T10:15:30' );
|
|
Packit |
106d3f |
is( $dt->nanosecond, 500_000_000 );
|
|
Packit |
106d3f |
is( $dt->time_zone->name, 'floating' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#YYYYMMDDThhmmssZ 19850412T101530Z
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '19850412T101530Z' );
|
|
Packit |
106d3f |
is( $dt->iso8601, '1985-04-12T10:15:30' );
|
|
Packit |
106d3f |
is( $dt->time_zone->name, 'UTC' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#YYYY-MM-DDThh:mm:ssZ 1985-04-12T10:15:30Z
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '1985-04-12T10:15:30Z' );
|
|
Packit |
106d3f |
is( $dt->iso8601, '1985-04-12T10:15:30' );
|
|
Packit |
106d3f |
is( $dt->time_zone->name, 'UTC' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#YYYYMMDDThhmmss.ssZ 19850412T101530.5Z
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '19850412T101530.5Z' );
|
|
Packit |
106d3f |
is( $dt->iso8601, '1985-04-12T10:15:30' );
|
|
Packit |
106d3f |
is( $dt->nanosecond, 500_000_000 );
|
|
Packit |
106d3f |
is( $dt->time_zone->name, 'UTC' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#YYYY-MM-DDThh:mm:ss.ssZ 1985-04-12T10:15:30.5Z
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '1985-04-12T10:15:30.5Z' );
|
|
Packit |
106d3f |
is( $dt->iso8601, '1985-04-12T10:15:30' );
|
|
Packit |
106d3f |
is( $dt->nanosecond, 500_000_000 );
|
|
Packit |
106d3f |
is( $dt->time_zone->name, 'UTC' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#YYYYMMDDThhmmss+hhmm 19850412T101530+0400
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '19850412T101530+0400' );
|
|
Packit |
106d3f |
is( $dt->iso8601, '1985-04-12T10:15:30' );
|
|
Packit |
106d3f |
is( $dt->time_zone->name, '+0400' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#YYYY-MM-DDThh:mm:ss+hh:mm 1985-04-12T10:15:30+04:00
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '1985-04-12T10:15:30+04:00' );
|
|
Packit |
106d3f |
is( $dt->iso8601, '1985-04-12T10:15:30' );
|
|
Packit |
106d3f |
is( $dt->time_zone->name, '+0400' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#YYYYMMDDThhmmss.ss+hhmm 19850412T101530.5+0400
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '19850412T101530.5+0400' );
|
|
Packit |
106d3f |
is( $dt->iso8601, '1985-04-12T10:15:30' );
|
|
Packit |
106d3f |
is( $dt->nanosecond, 500_000_000 );
|
|
Packit |
106d3f |
is( $dt->time_zone->name, '+0400' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#YYYY-MM-DDThh:mm:ss.ss+hh:mm 1985-04-12T10:15:30.5+04:00
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '1985-04-12T10:15:30.5+04:00' );
|
|
Packit |
106d3f |
is( $dt->iso8601, '1985-04-12T10:15:30' );
|
|
Packit |
106d3f |
is( $dt->nanosecond, 500_000_000 );
|
|
Packit |
106d3f |
is( $dt->time_zone->name, '+0400' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#YYYYMMDDThhmmss+hh 19850412T101530+04
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '19850412T101530+04' );
|
|
Packit |
106d3f |
is( $dt->iso8601, '1985-04-12T10:15:30' );
|
|
Packit |
106d3f |
is( $dt->time_zone->name, '+0400' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#YYYY-MM-DDThh:mm:ss+hh 1985-04-12T10:15:30+04
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '1985-04-12T10:15:30+04' );
|
|
Packit |
106d3f |
is( $dt->iso8601, '1985-04-12T10:15:30' );
|
|
Packit |
106d3f |
is( $dt->time_zone->name, '+0400' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#YYYYMMDDThhmm 19850412T1015
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '19850412T1015' );
|
|
Packit |
106d3f |
is( $dt->iso8601, '1985-04-12T10:15:00' );
|
|
Packit |
106d3f |
is( $dt->time_zone->name, 'floating' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#YYYY-MM-DDThh:mm 1985-04-12T10:15
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '1985-04-12T10:15' );
|
|
Packit |
106d3f |
is( $dt->iso8601, '1985-04-12T10:15:00' );
|
|
Packit |
106d3f |
is( $dt->time_zone->name, 'floating' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#YYYYDDDThhmmZ 1985102T1015Z
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '1985102T1015Z' );
|
|
Packit |
106d3f |
is( $dt->iso8601, '1985-04-12T10:15:00' );
|
|
Packit |
106d3f |
is( $dt->time_zone->name, 'UTC' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#YYYY-DDDThh:mmZ 1985-102T10:15Z
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '1985-102T10:15Z' );
|
|
Packit |
106d3f |
is( $dt->iso8601, '1985-04-12T10:15:00' );
|
|
Packit |
106d3f |
is( $dt->time_zone->name, 'UTC' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#YYYYWwwDThhmm+hhmm 1985W155T1015+0400
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '1985W155T1015+0400' );
|
|
Packit |
106d3f |
is( $dt->iso8601, '1985-04-12T10:15:00' );
|
|
Packit |
106d3f |
is( $dt->time_zone->name, '+0400' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#YYYY-Www-DThh:mm+hh 1985-W15-5T10:15+04
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_datetime( '1985-W15-5T10:15+04' );
|
|
Packit |
106d3f |
is( $dt->iso8601, '1985-04-12T10:15:00' );
|
|
Packit |
106d3f |
is( $dt->time_zone->name, '+0400' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
# parse_time
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#hhmmss 232050
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_time( '232050' );
|
|
Packit |
106d3f |
is( $dt->hms, '23:20:50' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#hhmm 2320
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_time( '2320' );
|
|
Packit |
106d3f |
is( $dt->hms, '23:20:00' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#hh 23
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_time( '23' );
|
|
Packit |
106d3f |
is( $dt->hms, '23:00:00' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#-mmss -2050
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_time( '-2050' );
|
|
Packit |
106d3f |
is( $dt->minute, '20' );
|
|
Packit |
106d3f |
is( $dt->second, '50' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#-mm -20
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_time( '-20' );
|
|
Packit |
106d3f |
is( $dt->minute, '20' );
|
|
Packit |
106d3f |
}
|
|
Packit |
106d3f |
|
|
Packit |
106d3f |
{
|
|
Packit |
106d3f |
#--ss --50
|
|
Packit |
106d3f |
my $dt = $iso8601->parse_time( '--50' );
|
|
Packit |
106d3f |
is( $dt->second, '50' );
|
|
Packit |
106d3f |
}
|