use strict;
use warnings;
use Test::More tests => 5;
use Date::Parse qw(strptime str2time);
# RT#48164: Date::Parse unable to set seconds correctly
{
for my $str ("2008.11.30 22:35 CET", "2008-11-30 22:35 CET") {
my @t = strptime($str);
my $t = join ":", map { defined($_) ? $_ : "-" } @t;
is($t, "-:35:22:30:10:108:3600:20", "RT#48164: seconds parsing for '$str'");
}
}
# RT#17396: Parse error for french date with 'mars' (march) as month
{
use Date::Language;
my $dateP = Date::Language->new('French');
my $timestamp = $dateP->str2time('4 mars 2005');
my ($ss, $mm, $hh, $day, $month, $year, $zone) = localtime $timestamp;
$month++;
$year += 1900;
my $date = "$day/$month/$year";
is($date, "4/3/2005", "RT#17396: French 'mars' parsed correctly");
}
# RT#51664: Change in str2time behaviour between 1.16 and 1.19
{
ok(str2time('16 Oct 09') >= 0, "RT#51664: '16 Oct 09' parses to non-negative time");
}
# RT#84075: Date::Parse::str2time maps date in 1963 to 2063
{
my $this_year = 1900 + (gmtime(time))[5];
my $target_year = $this_year - 50;
my $date = "$target_year-01-01 00:00:00 UTC";
my $time = str2time($date);
my $year_parsed_as = 1900 + (gmtime($time))[5];
is($year_parsed_as, $target_year, "RT#84075: year $target_year not mapped to future");
}