如何将dd / mm / yyyy转换为Perl的纪元时间?

时间:2014-12-18 02:18:13

标签: perl time perl-module epoch

我已经搜索了几个小时的公式,将dd / mm / yyyy格式转换为纪元时间但尚未找到解决方案。

我从两种不同的格式转换后有两个日期,现在就像这个“08011985”和“09302014”。我必须将它们转换为纪元时间,以便从最早和最晚的日期获得差异,并根据传播的大小做一些事情。

我无法安装任何模块,我在5.8.8。

2 个答案:

答案 0 :(得分:5)

内置模块Time::Local提供了localtime和gmtime,timelocal和timegm的反转。他们采取日期和时间并返回纪元时间。

perlfaq4涵盖了这些问题。

答案 1 :(得分:0)

以下是使用Time::Local模块的示例,该模块一直是Perl 5的核心组件。

use strict;
use warnings;

use Time::Local qw/ timelocal /;

for my $date ( qw/ 08011985 09302014 / ) {
  print epoch_for_mmddyyyy($date), "\n";
}

sub epoch_for_mmddyyyy {
  my ($m, $d, $y) = unpack 'A2A2A4', shift;
  timelocal(0, 0, 0, $d, $m-1, $y);
}

<强>输出

491698800
1412031600