#!/usr/bin/env perl -l use strict; use warnings; use Time::Piece; my $start = '2013-10-28T18:59:52.863Z'; my ($whole, $ms) = $start =~ /([^.]+)(.*)Z$/; my $t1 = Time::Piece->strptime($whole => '%Y-%m-%dT%H:%M:%S'); my $t2 = gmtime; my $diff = $t2 - $t1; print 'Whole seconds diff: ', $diff; print 'Fractional seconds diff: ', $diff - $ms; #### Whole seconds diff: 46979 Fractional seconds diff: 46978.137 #### $ date -u Tue 29 Oct 2013 08:02:51 UTC #### $ perl -E 'say(5*60*60 + 8 + 8*60*60 + 2*60 + 51)' 46979