#!perl use strict; use warnings; use DateTime; use DateTime::Format::Natural; my $parser = DateTime::Format::Natural->new(); my $first_timestamp = 'Mon, 27 Aug 2007 14:34:55 GMT'; my $second_timestamp = 'Sat, 27 Aug 2011 07:03:02 +1000'; $first_timestamp = $parser->extract_datetime($first_timestamp); $second_timestamp = $parser->extract_datetime($second_timestamp); my $first_dt = $parser->parse_datetime($first_timestamp); my $second_dt = $parser->parse_datetime($second_timestamp); print $first_dt->delta_days($second_dt)->days(), " days difference\n"; exit 0; #### #!perl use strict; use warnings; use feature qw( say ); use DateTime; use DateTime::Format::DateParse; use DateTime::Format::Strptime; my $first_timestamp = 'Fri, 27 Jul 2007 14:34:55 GMT'; my $second_timestamp = 'Wed, 27 Jul 2011 07:03:02 +1000'; say $first_timestamp; say $second_timestamp; my $first_dt = DateTime::Format::DateParse->parse_datetime($first_timestamp); my $second_dt = DateTime::Format::DateParse->parse_datetime($second_timestamp); $first_dt->set_time_zone('UTC'); $second_dt->set_time_zone('UTC'); my $strp = DateTime::Format::Strptime->new(pattern => '%F %T %z'); say $strp->format_datetime($first_dt); say $strp->format_datetime($second_dt); say $first_dt->delta_days($second_dt)->delta_days(), ' days difference'; exit 0;