我意识到Perl有strftime,它允许你传递一个格式化对象。我想知道我能找到的功能更像是以下(来自PHP):
$string1 = "Jun 6, 2012";
$string2 = "June 06 2012";
if (strtotime($string1) == strtotime($string2)) {
echo "BLAMMO!";
}
// will echo "BLAMMO!"
这样做的原因是业务需求,其中需要比较用户提供的日期以进行验证和扩展逻辑(此日期是否也属于另一个日期范围,等等)。现在,我意识到我可以编写一个专门用于执行此操作的完整库,并且我意识到日期解析存在任何潜在的陷阱,您永远不应该信任用户输入,但这里有一些基本的假设。
答案 0 :(得分:12)
Date::Parse提供str2time
,这样做。
文档列出了模块可以解析的一些示例:
1995:01:24T09:08:17.1823213 ISO-8601
1995-01-24T09:08:17.1823213
Wed, 16 Jun 94 07:29:35 CST Comma and day name are optional
Thu, 13 Oct 94 10:13:13 -0700
Wed, 9 Nov 1994 09:50:32 -0500 (EST) Text in ()'s will be ignored.
21 dec 17:05 Will be parsed in the current time zone
21-dec 17:05
21/dec 17:05
21/dec/93 17:05
1999 10:02:18 "GMT"
16 Nov 94 22:28:20 PST
答案 1 :(得分:5)
Perl中日期/时间操作的标准是DateTime项目。
答案 2 :(得分:1)
strptime
可以在核心模块Time::Piece中获得。这提供了核心模块解决方案,而不幸的是,富DateTime
模块不是核心Perl的一部分。