http://qs321.pair.com?node_id=1202485


in reply to Comparing DateTime objects in different timezones

$dt->offset is giving you the +1100 and -0700 portion of each time format, but in seconds rather than hours, i.e. 11 hours = 39600 seconds and -7 hours = -25200 seconds. You could use the $dt->epoch method to get the duration in seconds:
my $duration = $dt_received->epoch - $dt_sent->epoch; print "$duration seconds"; # 27 seconds
For finer grained control of the result you can use subtract_datetime()
my $duration = $dt_received->subtract_datetime( $dt_sent ); print $duration->minutes, " minutes, ", $duration->seconds, " seconds" +; # 0 minutes, 27 seconds
See DateTime::Duration