如何用Perl验证UTC中的"yyyy-MM-dd'T'HH:mm:ssZ"日期/时间戳?

Phi*_*ord 3 validation perl datetime

代码会很好但是正确方向上的一点也很好.

CPAN?正则表达式?

我见过两种方式

"YYYY-MM-dd'T'HH:MM:SSZ";

"YYYY-MM-DDTHH:MM:SSZ";

dao*_*oad 11

Ether绝对与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;
Run Code Online (Sandbox Code Playgroud)

您可以使用其他格式模块,例如D :: F :: Strptime,但您最终将重新创建ISO8601格式化程序已经执行的操作.

  • DateTime必须是用任何语言编写的最有用且设计良好的模块之一,恕我直言. (3认同)