#!/usr/bin/perl -- use strict; use warnings; use DateTime::Format::Human::Duration; use DateTime::Format::RFC3339; my $f = DateTime::Format::RFC3339->new(); my $dt1 = $f->parse_datetime( '2012-03-18T00:27:00+02:00' ); my $dt2 = $f->parse_datetime( '2012-03-17T18:35:00-07:00' ); print "$dt1 - $dt2 = \n"; $_->set_time_zone('UTC') for $dt1, $dt2; print "$dt1 - $dt2 = "; print DateTime::Format::Human::Duration->new ->format_duration( $dt1 - $dt2 ); print "\n"; __END__ 2012-03-18T00:27:00+02:00 - 2012-03-17T18:35:00-07:00 = 2012-03-17T22:27:00Z - 2012-03-18T01:35:00Z = 3 hours and 8 minutes