use warnings; use strict; use DateTime; use DateTime::Format::Strptime; my $str = "03/13/2016 02:00:00"; my $strp = DateTime::Format::Strptime->new( pattern => '%m/%d/%Y %H:%M:%S', time_zone=>'floating', on_error=>'croak'); my $dt = $strp->parse_datetime($str); if ($dt->year==2016 && $dt->month==3 && $dt->day==13 && $dt->hour==2) { # any minute and second $dt->add(hours=>1); } $dt->set_time_zone('America/Los_Angeles'); print $dt->strftime('%Y-%m-%d %H:%M:%S %Z'),"\n"; __END__ 2016-03-13 03:00:00 PDT