我想将dateformat中的一个字符串如'Aug 12/11'..转换为'YYYY-MM-DD',在这个例子中'2011-08-12' 。Perl /正则表达式日期格式转换
什么是最好的perl/regex用于这种转换?我能够通过解析每个和手动转换它..但我猜是有一个更快的方法来做到这一点与Perl /正则表达式。谢谢。
我想将dateformat中的一个字符串如'Aug 12/11'..转换为'YYYY-MM-DD',在这个例子中'2011-08-12' 。Perl /正则表达式日期格式转换
什么是最好的perl/regex用于这种转换?我能够通过解析每个和手动转换它..但我猜是有一个更快的方法来做到这一点与Perl /正则表达式。谢谢。
我建议不要自己做任何这样的日期解析,尤其是通过试图想出一个或两个正则表达式。有很多现有的Perl模块可以做到这一点,例如Date::Manip
。你的许多选择合理地涵盖in this article。
Time :: Piece已经是一个核心模块很长一段时间了,它有能力将一个字符串解析成一个Time :: Piece对象,然后它可以用10个gazillion不同的格式为你格式化。如果Time :: Piece未安装,您可以尝试查找其他几百个可在cpan上看到的日期时间模块。 (使用单行:perl -e“使用Module :: IHope :: IsHere || die \'Not found \'”)。
`Time::Piece->strptime(STRING, FORMAT)
# see strptime man page. Creates a new
# Time::Piece object`
如果我不能开始在我的主目录中安装模块,
对于'Date :: Manip'为+1。最好使用专为此目的设计的库,而不是试图自己覆盖每个边缘案例。 –
我的网络主机没有Date :: Manip,我没有权限安装这个模块:(这就是为什么我要寻找正则表达式的解决方案。 – simbatish
@sim你有没有安装DateTime? – TLP