#!/usr/bin/perl -w use strict; use Date::Manip; Date_Init("TZ=EST"); # target TZ # use your filehandle here instead of DATA while (my $date_anyTZ = ) { chomp $date_anyTZ; # get rid of '~' to make date parseable by Date::Manip $date_anyTZ =~ tr/~/ /; my $date_EST = UnixDate(ParseDate($date_anyTZ), "%Y-%m-%d %H:%M:%S %Z"); printf "%-24s --> %s\n", $date_anyTZ, $date_EST; } __DATA__ 20050526~18:15:06 GMT 20040401~01:12:02 GMT 20060201~00:59:01 GMT 20060401~01:01:01 EST 20040201~10:10:01 -0600 20010901~04:23:05 -0400 20050526~18:15:06 GMT 20040401~01:12:02 GMT 20000101~00:59:01 -0200 19841223~04:22:06 MST