1# t/002_basic.t - check module dates in various formats 2 3use Test::More 0.88; 4use DateTime::Format::Strptime; 5 6{ 7 my $object = DateTime::Format::Strptime->new( 8 pattern => '%D', 9 time_zone => 'Australia/Melbourne', 10 locale => 'en_AU', 11 diagnostic => 0, 12 ); 13 14 my $epoch = DateTime->new( 15 year => 2003, month => 11, day => 5, 16 hour => 23, minute => 34, second => 45, 17 time_zone => 'Australia/Melbourne' 18 )->epoch; 19 20 my @tests = ( 21 22 # Compound Patterns 23 [ '%T', '23:34:45', '24-hour Time' ], 24 [ '%r', '11:34:45 PM', '12-hour Time' ], 25 [ '%R', '23:34', 'Simple 24-hour Time' ], 26 [ '%D', '11/30/03', 'American Style Date' ], 27 [ '%F', '2003-11-30', 'ISO Style Date' ], 28 29 [ 30 '%a %b %B %C %d %e %h %H %I %j %k %l %m %M %n %N %O %p %P %S %U %u %w %W %y %Y %s %G %g %z %Z %%Y %%', 31 "Wed Nov November 20 05 5 Nov 23 11 309 23 11 11 34 \n 123456789 Australia/Melbourne PM pm 45 44 3 3 44 03 2003 $epoch 2003 03 +1100 EST %Y %", 32 "Every token at once" 33 ], 34 35 [ '%{year}', '2003', 'Extended strftime %{} matching' ], 36 37 ); 38 39 foreach (@tests) { 40 my ( $pattern, $data, $name ) = @$_; 41 $name ||= $pattern; 42 43 #print "-- $pattern ($data) --\n"; 44 $object->pattern($pattern); 45 46 #print "\n" . $object->pattern . "\n" . $object->{parser}; 47 #print $object->parse_datetime( $data )->strftime("%Y-%m-%d %H:%M:%S\n"); 48 #print $object->parse_datetime( $data )->strftime("Got: $pattern\n"); 49 is( $object->format_datetime( $object->parse_datetime($data) ), $data, 50 $name ); 51 } 52} 53 54{ 55 my $object = DateTime::Format::Strptime->new( 56 pattern => '%D', 57 time_zone => 'Australia/Melbourne', 58 locale => 'en_AU', 59 diagnostic => 0, 60 ); 61 62 my $epoch = DateTime->new( 63 year => 2003, month => 11, day => 5, 64 hour => 23, minute => 34, second => 45, 65 time_zone => 'Australia/Melbourne' 66 )->epoch; 67 68 my @tests = ( 69 70 # Compound Patterns 71 [ '%T', '23:34:45', '24-hour Time' ], 72 [ '%r', '11:34:45 PM', '12-hour Time' ], 73 [ '%R', '23:34', 'Simple 24-hour Time' ], 74 [ '%D', '11/30/03', 'American Style Date' ], 75 [ '%F', '2003-11-30', 'ISO Style Date' ], 76 77 [ 78 '%a %b %B %C %d %e %h %H %I %j %k %l %m %M %n %N %p %P %S %U %u %w %W %y %Y %s %G %g %z %Z %%', 79 "Wed Nov November 20 05 5 Nov 23 11 309 23 11 11 34 \n 123456789 PM pm 45 44 3 3 44 03 2003 $epoch 2003 03 +1100 EST %", 80 "Every token at once" 81 ], 82 83 [ '%{year}', '2003', 'Extended strftime %{} matching' ], 84 85 ); 86 87 foreach (@tests) { 88 my ( $pattern, $data, $name ) = @$_; 89 $name ||= $pattern; 90 $object->pattern($pattern); 91 is( $object->format_datetime( $object->parse_datetime($data) ), $data, 92 $name ); 93 } 94} 95 96done_testing(); 97