使用时间:: PIece的strptime时如何避免单位数匹配

时间:2015-12-06 04:42:23

标签: perl

我正在使用%y-%m-%d-%h。匹配值。但它会生成单个值。我想要两个数字值,如01几个月。我在perl中使用strptime Time::piece函数。

1 个答案:

答案 0 :(得分:1)

原谅并解决:

my $tp = eval { Time::Piece->strptime($date , '%y-%m-%d-%h') };
if ($@) {
   die("Wrong format");
}

$date = $tp->strftime('%y-%m-%d-%h');

严格执行:

if ($date !~ /^[0-9]{4}-[0-9]{2}-[0-9]{2}-[0-9]{2}\z/) {
   die("Wrong format");
}

if (!eval { Time::Piece->strptime($date , '%y-%m-%d-%h') }) {
   die("Wrong format");
}