my @dates = (
"1901-01-01 00:00:00",
"1968-12-31 23:59:59",
"1969-01-01 00:00:00",
"1969-12-31 23:59:59",
"1970-01-01 00:00:01",
);
for my $string (@dates) {
my $epoch = str2time( $string, 'GMT' );
print "$string ($epoch seconds)\n";
my $date = DateTime->from_epoch( epoch => $epoch );
print $date->ymd, " ", $date->hms, "\n\n";
}
####
1901-01-01 00:00:00 (978307200 seconds)
2001-01-01 00:00:00
1968-12-31 23:59:59 (3124223999 seconds)
2068-12-31 23:59:59
1969-01-01 00:00:00 (-31536000 seconds)
1969-01-01 00:00:00
1969-12-31 23:59:59 (-1 seconds)
1969-12-31 23:59:59
1970-01-01 00:00:01 (1 seconds)
1970-01-01 00:00:01
##
##
use Time::Local;
my %hash = (
"1901-01-01 00:00:00" => [00,00,00,01,00,1901],
"1968-12-31 23:59:59" => [59,59,23,31,11,1968],
"1969-01-01 00:00:00" => [00,00,00,01,00,1969],
"1969-12-31 23:59:59" => [59,59,23,31,11,1969],
"1970-01-01 00:00:01" => [01,00,00,01,00,1970],
);
for my $string (@dates) {
my $array = $hash{$string};
my $epoch = timegm( @$array );
print "$string ($epoch seconds)\n";
my $date = DateTime->from_epoch( epoch => $epoch );
print $date->ymd, " ", $date->hms, "\n\n";
}
##
##
1901-01-01 00:00:00 (-2177452800 seconds)
1901-01-01 00:00:00
1968-12-31 23:59:59 (-31536001 seconds)
1968-12-31 23:59:59
1969-01-01 00:00:00 (-31536000 seconds)
1969-01-01 00:00:00
1969-12-31 23:59:59 (-1 seconds)
1969-12-31 23:59:59
1970-01-01 00:00:01 (1 seconds)
1970-01-01 00:00:01