Add support for %d %b %Y %T %Z format
Essentially HTTP format without the day and allowing any timezone.master
parent
a24b0aaf42
commit
db88b11d1d
|
@ -326,6 +326,9 @@ sub build_datestring_regex {
|
||||||
# HTTP: Sat, 09 Aug 2014 18:20:00
|
# HTTP: Sat, 09 Aug 2014 18:20:00
|
||||||
push @regexes, qr#$short_day_of_week, [0-9]{2} $short_month $full_year $time_24h?#i;
|
push @regexes, qr#$short_day_of_week, [0-9]{2} $short_month $full_year $time_24h?#i;
|
||||||
|
|
||||||
|
# HTTP (without day) any TZ: 09 Aug 2014 18:20:00 UTC
|
||||||
|
push @regexes, qr#[0-9]{2} $short_month $full_year $time_24h(?: ?$tz_suffixes)?#i;
|
||||||
|
|
||||||
# RFC850 08-Feb-94 14:15:29 GMT
|
# RFC850 08-Feb-94 14:15:29 GMT
|
||||||
push @regexes, qr#[0-9]{2}-$short_month-(?:[0-9]{2}|$full_year) $time_24h?(?: ?$tz_suffixes)#i;
|
push @regexes, qr#[0-9]{2}-$short_month-(?:[0-9]{2}|$full_year) $time_24h?(?: ?$tz_suffixes)#i;
|
||||||
|
|
||||||
|
@ -385,6 +388,7 @@ sub parse_formatted_datestring_to_date {
|
||||||
$d =~ s/,//i; # Strip any random commas.
|
$d =~ s/,//i; # Strip any random commas.
|
||||||
$d =~ s/($full_month)/$full_month_to_short{lc $1}/i; # Parser deals better with the shorter month names.
|
$d =~ s/($full_month)/$full_month_to_short{lc $1}/i; # Parser deals better with the shorter month names.
|
||||||
$d =~ s/^($short_month)$date_delim(\d{1,2})/$2-$short_month_fix{lc $1}/i; # Switching Jun-01-2012 to 01 Jun 2012
|
$d =~ s/^($short_month)$date_delim(\d{1,2})/$2-$short_month_fix{lc $1}/i; # Switching Jun-01-2012 to 01 Jun 2012
|
||||||
|
$d =~ s/($tz_strings)$/$tz_offsets{$1}/i; # Convert trailing timezones to actual offsets.
|
||||||
|
|
||||||
my $maybe_date_object = try { DateTime::Format::HTTP->parse_datetime($d) }; # Don't die no matter how bad we did with checking our string.
|
my $maybe_date_object = try { DateTime::Format::HTTP->parse_datetime($d) }; # Don't die no matter how bad we did with checking our string.
|
||||||
|
|
||||||
|
|
|
@ -94,6 +94,12 @@ subtest 'Dates' => sub {
|
||||||
'Sun Sep 7 20:11:44 BST 2014' => 1410117104,
|
'Sun Sep 7 20:11:44 BST 2014' => 1410117104,
|
||||||
# RFC 2822
|
# RFC 2822
|
||||||
'Sat, 13 Mar 2010 11:29:05 -0800' => 1268508545,
|
'Sat, 13 Mar 2010 11:29:05 -0800' => 1268508545,
|
||||||
|
# HTTP (without day) - any TZ
|
||||||
|
# %d %b %Y %H:%M:%S %Z
|
||||||
|
'01 Jan 2012 00:01:20 UTC' => 1325376080,
|
||||||
|
'22 Jun 1998 00:00:02 UTC' => 898473602,
|
||||||
|
'07 Sep 2014 20:11:44 BST' => 1410117104,
|
||||||
|
'09 Aug 2014 18:20:00' => 1407608400,
|
||||||
#Undefined/Natural formats:
|
#Undefined/Natural formats:
|
||||||
'13/12/2011' => 1323734400, #DMY
|
'13/12/2011' => 1323734400, #DMY
|
||||||
'01/01/2001' => 978307200, #Ambiguous, but valid
|
'01/01/2001' => 978307200, #Ambiguous, but valid
|
||||||
|
|
Loading…
Reference in New Issue