Subject: | timegm should be called with 4-digit year |
man Time::Local says
Whenever possible, use an absolute four digit year instead.
With a detailed explanation about ambiguity of 2-digit years above that.
Please review/test/merge the attached patch
Subject: | fix.patch |
Index: BioPerl-1.007002/maintenance/cvs2cl_by_file.pl
===================================================================
--- BioPerl-1.007002.orig/maintenance/cvs2cl_by_file.pl
+++ BioPerl-1.007002/maintenance/cvs2cl_by_file.pl
@@ -2333,7 +2333,7 @@ sub parse_date_author_and_state {
die "Bad date or Y2K issues"
unless $year > 1969 and $year < 2258;
# Kinda arbitrary, but useful as a sanity check
- my $time = timegm($secs, $min, $hours, $mday, $mon-1, $year-1900);
+ my $time = timegm($secs, $min, $hours, $mday, $mon-1, $year);
if ( defined $utcOffset ) {
my ($plusminus, $hour, $minute) = ($utcOffset =~ m/([+-])(\d\d)(\d\d)/);
my $offset = (($hour * 60) + $minute) * 60 * ($plusminus eq '+' ? -1 : 1);
@@ -2409,7 +2409,7 @@ sub maybe_grab_accumulation_date {
# convert the utc time to a time value
my ($year,$mon,$mday,$hour,$min) = $boundary_date =~
m#(\d+)-(\d+)-(\d+)\s+(\d+):(\d+)#;
- my $time = timegm(0,$min,$hour,$mday,$mon-1,$year-1900);
+ my $time = timegm(0,$min,$hour,$mday,$mon-1,$year);
# print the timevalue in the local timezone
my ($ignore,$wday);
($ignore,$min,$hour,$mday,$mon,$year,$wday) = localtime($time);