如何将不同时区的日期时间字符串转换为整数以查找最近的,即perl中的最大整数?

时间:2011-07-11 12:46:04

标签: perl

我有以下格式的日期时间字符串

[yyyymmddhhmmss+TZ] "20110711114445+08", "20110711114445+05.30". 

我应该如何找出哪个是最近的日期时间字符串? 我想将所有字符串转换为单个时区,然后将字符串转换为整数以找出最大整数。 救救我?

2 个答案:

答案 0 :(得分:7)

您可以使用DateTime::Format::Strptime将日期时间字符串解析为DateTime个对象。获得对象后,可以将它们作为普通整数进行比较。

use DateTime::Format::Strptime;
use List::Util 'max';

my $Strp = new DateTime::Format::Strptime(pattern => '%Y%m%d%H%M%S%z');
my @objects = map $Strp->parse_datetime($_), @strings;
my $dt = max(@objects);

答案 1 :(得分:1)

Date::Calc可以帮到你。