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);