+use Date::Parse qw(str2time strptime);
+
+sub str2date_zone ($) {
+ my ($date) = @_;
+
+ my $ts = str2time($date);
+ return undef unless(defined $ts);
+
+ # off is the time zone offset in seconds from GMT
+ my ($ss,$mm,$hh,$day,$month,$year,$off) = strptime($date);
+ return undef unless(defined $off);
+
+ # Compute the time zone from offset
+ my $sign = ($off < 0) ? '-' : '+';
+ my $hour = abs(int($off / 3600));
+ my $min = ($off / 60) % 60;
+ my $zone = sprintf('%s%02d%02d', $sign, $hour, $min);