将日期转换为指定格式和两个日期比较

时间:2013-08-19 10:54:05

标签: perl

给出两个日期:

$ Date1

format: yyyy-mm-dd hh:mm:ss eg:  2013-05-21 07:47:21

$ Date2

format: Day Month date hh:mm:ss yyyy eg: Thu Aug  1 09:53:40 2013

如何比较$ Date1和$ Date2?

我想做以下操作:

如果($日期2> = $日期1){   //做一些操作 }

但我无法进行比较,因为两个日期的格式不同。

2 个答案:

答案 0 :(得分:4)

怎么样:

use Time::Piece;
my $d1 = '2013-05-21 07:47:21';
my $d2 = 'Thu Aug  1 09:53:40 2013';
my $t1 = Time::Piece->strptime($d1, "%Y-%m-%d %T");
my $t2 = Time::Piece->strptime($d2, "%c");
say $t2->epoch - $t1->epoch;

<强>输出:

6228379

Time::Piece documentation

答案 1 :(得分:0)

使用正则表达式解析日期,并使用Time::Local函数转换为1970年1月1日之后的秒数,以比较整数。