- unless (defined $ts) {
- my @date = $hdr->header_raw('Date');
- foreach my $d (@date) {
- $zone = undef;
- $ts = eval { str2time($d) };
- if ($@) {
- $mid ||= $hdr->header_raw('Message-ID');
- warn "bad Date: $d in $mid: $@\n";
- } elsif ($d =~ /\s+([\+\-]\d+)\s*\z/) {
- $zone = $1;
- }
+ defined $ts ? [ $ts, zone_clamp($zone) ] : undef;
+}
+
+sub msg_date_only ($) {
+ my ($hdr) = @_; # Email::MIME::Header
+ my @date = $hdr->header_raw('Date');
+ my ($ts, $zone);
+ foreach my $d (@date) {
+ $zone = undef;
+ # Y2K problems: 3-digit years
+ $d =~ s!([A-Za-z]{3}) (\d{3}) (\d\d:\d\d:\d\d)!
+ my $yyyy = $2 + 1900; "$1 $yyyy $3"!e;
+ $ts = eval { str2time($d) };
+ if ($@) {
+ my $mid = $hdr->header_raw('Message-ID');
+ warn "bad Date: $d in $mid: $@\n";
+ } elsif ($d =~ /\s+([\+\-]\d+)\s*\z/) {
+ $zone = $1;