about summary refs log tree commit homepage
diff options
context:
space:
mode:
-rw-r--r--lib/PublicInbox/MsgTime.pm3
-rw-r--r--t/msgtime.t7
2 files changed, 9 insertions, 1 deletions
diff --git a/lib/PublicInbox/MsgTime.pm b/lib/PublicInbox/MsgTime.pm
index 8eee9a75..8703d7bc 100644
--- a/lib/PublicInbox/MsgTime.pm
+++ b/lib/PublicInbox/MsgTime.pm
@@ -104,7 +104,8 @@ sub str2date_zone ($) {
                 # off is the time zone offset in seconds from GMT
                 my ($ss,$mm,$hh,$day,$month,$year,$off) =
                                         Date::Parse::strptime($date);
-                return undef unless(defined $off);
+                return unless defined($year);
+                $off //= 0;
 
                 # Compute the time zone from offset
                 my $sign = ($off < 0) ? '-' : '+';
diff --git a/t/msgtime.t b/t/msgtime.t
index 5c4636a2..7c95e547 100644
--- a/t/msgtime.t
+++ b/t/msgtime.t
@@ -5,6 +5,8 @@ use warnings;
 use Test::More;
 use PublicInbox::MIME;
 use PublicInbox::MsgTime;
+use PublicInbox::TestCommon;
+
 our $received_date = 'Mon, 22 Jan 2007 13:16:24 -0500';
 sub datestamp ($) {
         my ($date) = @_;
@@ -102,6 +104,11 @@ is_datestamp('Thu, 14 Dec 2006 00:20:24 +0480', [1166036424, '+0520']);
 is_datestamp('Thu, 14 Dec 2006 00:20:24 -0480', [1166074824, '-0520']);
 is_datestamp('Mon, 14 Apr 2014 07:59:01 -0007', [1397462761, '-0007']);
 
+SKIP: {
+        require_mods('Date::Parse', 1);
+        is_datestamp('Sat, 27 Sep 1997 10:02:32', [875354552, '+0000']);
+}
+
 # obsolete formats described in RFC2822
 for (qw(UT GMT Z)) {
         is_datestamp('Fri, 02 Oct 1993 00:00:00 '.$_, [ 749520000, '+0000']);