- my ($sec,$min,$hour) = gmtime((defined $t) ? $t : time);
- $year += 1900;
- my $buf = sprintf "%02d%02dZ", $hour, $min;
+ $t = defined $t ? $t : time;
+ my $dst = shift;
+ my ($sec,$min,$hour) = $dst ? localtime($t): gmtime($t);
+ my $buf = sprintf "%02d%02d%s", $hour, $min, ($dst) ? '' : 'Z';