如何使用Perl比较格式中的两个日期:
"dd mon yyyy hh:mm:ss GMT"
例如:2013年5月12日10:10:20 GMT
我无法安装任何外部Perl模块。 请指教。
答案 0 :(得分:4)
如果您使用的是Perl v5.9.5或更高版本,则可以使用Time::Piece
核心模块。这是相关操作的简单演示
将日期从字符串转换为Time::Piece
对象
my $date = "12 May 2013 10:10:20 GMT";
my $tp1 = Time::Piece->strptime($date, "%d %B %Y %T %Z");
my $tp2 = ...
找出2次
之间的差异my $diff = $tp2 - $tp1;
,它会为您提供Time::Seconds
个对象。
最后,以秒为单位显示差异(或其他内容)。
print $diff->seconds;
或者您可以直接比较两者(感谢stevenl)
$tp2 > $tp1
参考文献:
Time::Piece->strptime
$tp->strftime
一起使用的格式字符串
aAbBcdHIjmMpSUwWxXyYZ%
是安全的(例如,Window的Perl不支持%e
说明符)。 答案 1 :(得分:2)
将日期转换为格式yyyymmddhhmmss
(例如20130512101020
)并比较为字符串。但是,如果没有模块,处理时区可能会变得棘手。
答案 2 :(得分:1)