首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Perl在UTC中验证“yyyy-mm-dd‘T’in :mm:ssZ”日期/时间戳?

如何使用Perl在UTC中验证“yyyy-mm-dd‘T’in :mm:ssZ”日期/时间戳?
EN

Stack Overflow用户
提问于 2010-01-19 03:28:25
回答 2查看 4.5K关注 0票数 4

代码会很好,但在正确的方向上也是很好的。

CPAN?RegEx?

两种方式我都见过

“yyyy-mm-dd‘T’dd:mm:ssZ”;

"yyyy-MM-ddTHH:mm:ssZ";

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-01-19 04:16:35

乙醚肯定是在DateTime的正确轨道上。使用DateTime,您可以确保您有一个实际存在的时间,如果您自己写支票,2000年2月29日可能会有一些东西通过。

您的格式看起来像ISO8601字符串。因此,使用DateTime::Format::ISO8601进行解析。

代码语言:javascript
复制
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格式化程序已经执行的操作。

票数 11
EN

Stack Overflow用户

发布于 2010-01-19 03:58:40

根据您正在执行的操作,您可能希望将字符串强制转换为DateTime对象,例如:

代码语言:javascript
复制
use DateTime::Format::MySQL;
my $dt = DateTime::Format::MySQL->parse_datetime( '2003-01-16 23:12:01' );

然后,您可以轻松地以不同的格式输出您的时间字符串,执行计算,等等。

您没有指定是什么在生成该特定格式的字符串,但是有针对大量输入源的DateTime:: format ::模块。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2088651

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档