$t1 = 20041101174146 my ( $y, $m, $d, $hh,$mm, $ss ) = unpack ("A4A2A2A2A2A2", $a ) $epoch= timelocal( $ss, $mm, $hh, $d, $m-1, $y-1900 ) ( $ss, $mm, $hh, $d, $m, $y ) = localtime( $epoch - $seconds_to_subtract) $t2 = sprintf( "%d%02d%02d%02d%02d%02d", $y+1900, $m+1, $d, $hh, $mm, $ss ); # $t2 is 20041101172646