#!/usr/bin/perl -- use strict; use warnings; use DateTime::Format::Strptime; my $timestamp = q{20150619-17:30:43.616}; my $fmt = DateTime::Format::Strptime->new( pattern => q{%Y%m%d-%T.%3N}, time_zone => 'UTC', ); my $dt = $fmt->parse_datetime( $timestamp ); printf "%20s %s\n", $dt->time_zone_long_name, $fmt->format_datetime( $dt ); $dt->set_time_zone( 'EST5EDT' ); printf "%20s %s\n", $dt->time_zone_long_name, $fmt->format_datetime( $dt ); $dt->set_time_zone( 'EST' ); printf "%20s %s\n", $dt->time_zone_long_name, $fmt->format_datetime( $dt ); $dt->set_time_zone( 'America/New_York' ); printf "%20s %s\n", $dt->time_zone_long_name, $fmt->format_datetime( $dt ); __END__ UTC 20150619-17:30:43.616 EST5EDT 20150619-13:30:43.616 EST 20150619-12:30:43.616 America/New_York 20150619-13:30:43.616