【发布时间】:2011-08-12 22:40:14
【问题描述】:
我正在尝试将日期格式的字符串(例如 'Aug 12/11'.. 转换为 'YYYY-MM-DD',在本例中为 '2011-08-12')。
用于此转换的最佳 perl/regex 是什么?我能够通过解析每个并手动转换它来做到这一点..但我猜有一种更快的方法可以用 perl/regex 来做到这一点。谢谢。
【问题讨论】:
我正在尝试将日期格式的字符串(例如 'Aug 12/11'.. 转换为 'YYYY-MM-DD',在本例中为 '2011-08-12')。
用于此转换的最佳 perl/regex 是什么?我能够通过解析每个并手动转换它来做到这一点..但我猜有一种更快的方法可以用 perl/regex 来做到这一点。谢谢。
【问题讨论】:
我建议不要自己进行任何这样的日期解析,尤其是尝试提出一两个正则表达式。有很多现有的 perl 模块可以做到这一点,例如 Date::Manip。你的许多选择都被合理地覆盖了in this article。
【讨论】:
Date::Manip。最好使用为此目的而设计的库,而不是自己尝试涵盖所有边缘情况。
Time::Piece 长期以来一直是一个核心模块,它确实能够将字符串解析为 Time::Piece 对象,然后它可以为您设置 10 种不同格式的格式。如果 Time::Piece 未安装,您可以尝试查找 cpan 上列出的其他数百个日期时间模块中的一些。 (使用单行: perl -e "use Module::IHope::IsHere || die \'Not found\'")。
`Time::Piece->strptime(STRING, FORMAT)
# see strptime man page. Creates a new
# Time::Piece object`
我无法开始在我的主目录中安装模块。
【讨论】: