use strict; use warnings; use DateTime; my $dt1 = DateTime->new( year => 2003, month => 8, day => 20, hour => 0, minute => 0, second => 0, ); #### my $dt2 = DateTime->now(time_zone=>'local'); my $dt3 = DateTime->today(time_zone=>'local'); #### print $dt1->ymd('-'); # produces 2003-08-20 print $dt1->mdy('-'); # produces 08-20-2003 print $dt1->datetime(); # produces 2003-08-20T00:00:00 #### my $dt1 = DateTime->new( year => 2003, month => 8, day => 26, hour => 21, time_zone => 'America/Chicago' ); #### $dt2 = $dt1->clone->set_time_zone( 'Europe/Helsinki' ); print $dt2->datetime, "\n"; #### my $dt1 = DateTime-> new ( year =>'1998', month =>'4', day =>'4', hour =>'21', time_zone =>'local' ); $dt1->add(hours =>10); print $dt1->datetime ,"\n"; #### use strict; use warnings; use DateTime::Format::HTTP; my $date = 'Mon, Feb 3 04:00:00 GMT 2003'; my $dt_class = 'DateTime::Format::HTTP'; my $dt = $dt_class->parse_datetime($date); print $dt_class->format_datetime($dt); #### use strict; use warnings; use DateTime; my @new_dates; my @dates =(``Sat, 19 Jul 2003 15:53:45 -0500'', ``1996-02-03'',``08-Feb-1998 14:15:29 GMT'', ``19850411'', ``1985-04-12'', ``1985-04'', ``18 Feb 2003 06:54:23 -0000'', ``+001999-04-12'', ``01 Jan 2003 07:03:06 -0000'', ``1982-102'', ``21 Mar 2001 09:15:32 -0800'', ``06 Jan 2002 10:08:00 -0000'', ``09 Jan 2003 11:32:40 -0500'', ); foreach my $new_date (@dates) { push(@new_dates,DateTime::Format::Mytest->parse_datetime($new_date) );} print map {$_->datetime(), ``\n''} sort @new_dates; package DateTime::Format::Mytest; use DateTime::Format::HTTP; use DateTime::Format::Mail; use DateTime::Format::ISO8601; use DateTime::Format::Builder ( parsers => { parse_datetime => [ sub { eval { DateTime::Format::HTTP->parse_datetime($_[1] ) } }, sub { eval { DateTime::Format::Mail->parse_datetime($_[1] ) } }, sub { eval { DateTime::Format::ISO8601->parse_datetime( $_[1]) } }, ] } ); #### my $dt = DateTime-> new(year => 2002, month=> 8, ); my dt2 = DateTime->new(year => 2003, month=> 2, ); my $cmp = DateTime->compare($dt, $dt2); #### if ($dt > $dt2) {do ....;} elsif($dt == $dt2) {do something else;} elsif($dt < $dt2) {do still something else...;} #### my $dt1 = DateTime->now(); my $dt2 = $dt1->clone->subtract( weeks => 1);