我知道Perl的DateTime
模块,以及许多解析特定类型的日期/时间格式的DateTime::Format::
模块。但是,给定一些日期/时间字符串的示例,我如何才能确定(在编码/设计时,* 而不是 * 在运行时)我应该使用哪个特定的模块?
例如,我想解析如下字符串:October 28, 2011 9:00 PM PDT
是否有一个最常见的日期/时间格式的列表,我可以在其中查找并找到最合适的模块?
我也知道有些模块会在运行时尽力“猜测”每个给定字符串的格式。但是,对于敏感的应用程序,我希望在设计应用程序时首先(尽可能严格地)确定格式,然后使用一个模块,如果字符串与指定的格式不匹配,该模块会向我发出警告。
我该怎么做?
5条答案
按热度按时间5cnsuln71#
DateTime::Format::Strptime获取日期/时间字符串并将其解析为DateTime对象。
模式中使用的字符序列是POSIX标准。有关详细信息,请参阅“man strftime”。
dxxyhpgq2#
我倾向于使用Time::Piece,因为它是从5.10版本开始的标准Perl模块集的一部分。
你不能击败它的能力,解析日期字符串。
ykejflvf3#
看一下
Date::Parse
模块,即str2time()
函数,它支持大多数常用格式。示例:
ghhaqwfi4#
如果您正在寻找常见的日期/时间格式,请查看DateTime::Locale
下面的方法返回适合DateTime-〉format_cldr()方法的字符串:
可以使用DateTime::Format::CLDR模块解析日期
jv4diomz5#
DateTime::Format::Natural也是一个很好的候选。
测试项目: