【发布时间】:2013-09-02 18:08:50
【问题描述】:
我是 perl 脚本的新手。我有一个要求,我需要在分钟/秒内找到两个日期的差异
$date1 = Fri Aug 30 10:53:38 2013
$date2 = Fri Aug 30 02:12:25 2013
你能告诉我我们是如何实现这一点的,解析、计算、模块 req 和所有
谢谢 古瑟姆
【问题讨论】:
我是 perl 脚本的新手。我有一个要求,我需要在分钟/秒内找到两个日期的差异
$date1 = Fri Aug 30 10:53:38 2013
$date2 = Fri Aug 30 02:12:25 2013
你能告诉我我们是如何实现这一点的,解析、计算、模块 req 和所有
谢谢 古瑟姆
【问题讨论】:
Time::Piece 自 2007 年以来一直是 Perl 的标准部分。
#!/usr/bin/perl
use strict;
use warnings;
use 5.010;
use Time::Piece;
my $date1 = 'Fri Aug 30 10:53:38 2013';
my $date2 = 'Fri Aug 30 02:12:25 2013';
my $format = '%a %b %d %H:%M:%S %Y';
my $diff = Time::Piece->strptime($date1, $format)
- Time::Piece->strptime($date2, $format);
say $diff;
【讨论】:
Time::Piece->strptime 用于处理 UTC 时间。如果处理当地时间,请改用Time::Piece::localtime->strptime。
将两个日期都转换为 UNIX 时间
见http://metacpan.org/pod/Date::Parse
然后你可以做一个简单的数学减法来找出两者之间的秒数。
那么就可以通过简单的数学计算得到分钟、小时等。
【讨论】: