【问题标题】:How to calculate date difference in perl如何计算perl中的日期差异
【发布时间】: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 date datetime


【解决方案1】:

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
【解决方案2】:

将两个日期都转换为 UNIX 时间

http://metacpan.org/pod/Date::Parse

然后你可以做一个简单的数学减法来找出两者之间的秒数。

那么就可以通过简单的数学计算得到分钟、小时等。

【讨论】:

  • 做数学不会得到正确答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-09-15
  • 2017-10-16
  • 2011-12-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-13
相关资源
最近更新 更多