我知道DateTime Perl模块,和许多
DateTime::Format::
模块来解析特定类型的日期/时间格式。然而,给定一些日期/时间字符串的例子,我怎么知道(在编码/设计时,而不是在运行时)我应该使用哪个特定的模块?
例如,我想解析字符串,如:2011年10月28日晚上9:00 PDT
有一个列表的最常见的日期/时间格式的地方,我可以看看这里,找到哪个是最合适的模块?
我还知道一些模块,试图“猜”的格式为每个给定的字符串在运行时,尽他们最好的。但是,对于敏感的应用程序,我想在设计应用程序时首先确定(尽可能严格)格式,然后使用一个模块,如果字符串不匹配指定的格式,它会警告我。
我应该怎么做呢?
解决方法
DateTime::Format::Strptime获取日期/时间字符串并将其解析为DateTime对象。
#!/usr/bin/perl use strict; use warnings; use DateTime::Format::Strptime; my $parser = DateTime::Format::Strptime->new( pattern => '%B %d,%Y %I:%M %p %Z',on_error => 'croak',); my $dt = $parser->parse_datetime('October 28,2011 9:00 PM PDT'); print "$dt\n";
在模式中使用的字符序列是POSIX标准。有关详细信息,请参阅“man strftime”。