代码会很好,但在正确的方向上也是很好的。
CPAN?RegEx?
两种方式我都见过
“yyyy-mm-dd‘T’dd:mm:ssZ”;
"yyyy-MM-ddTHH:mm:ssZ";
发布于 2010-01-19 04:16:35
乙醚肯定是在DateTime的正确轨道上。使用DateTime,您可以确保您有一个实际存在的时间,如果您自己写支票,2000年2月29日可能会有一些东西通过。
您的格式看起来像ISO8601字符串。因此,使用DateTime::Format::ISO8601进行解析。
use DateTime;
use DateTime::Format::ISO8601;
my $string = '2010-02-28T15:21:33Z';
my $dt = DateTime::Format::ISO8601->parse_datetime( $string );
die "Impossible time" unless $dt;您可以使用其他格式模块,例如D::F::Strptime,但最终将重新创建ISO8601格式化程序已经执行的操作。
发布于 2010-01-19 03:58:40
根据您正在执行的操作,您可能希望将字符串强制转换为DateTime对象,例如:
use DateTime::Format::MySQL;
my $dt = DateTime::Format::MySQL->parse_datetime( '2003-01-16 23:12:01' );然后,您可以轻松地以不同的格式输出您的时间字符串,执行计算,等等。
您没有指定是什么在生成该特定格式的字符串,但是有针对大量输入源的DateTime:: format ::模块。
https://stackoverflow.com/questions/2088651
复制相似问题