use strict; use warnings; use DateTime::Format::ISO8601; my $str = '2013-10-28T18:59:52.863Z'; my $dt = DateTime::Format::ISO8601->parse_datetime( $str ); my $now = DateTime->now; print +($dt->epoch() - $now->epoch())/3600, " hours\n";