需要帮助解析日期时间戳并按日期和时间将其拆分。
use strict;
use warnings;
use Time::Piece;
my $string = "05:57:03 08/31/10 MDT";
print $string,"\n";
my $time = Time::Piece->strptime($string, "%H:%M:%S");
my $date = Time::Piece->strptime($string, "%Y/%m/%d");
print $time,$date,"\n";
谢谢! 另外,我如何确定这周使用代码的哪一天?
答案 0 :(得分:7)
use DateTime::Format::Strptime;
my $s = DateTime::Format::Strptime->new(pattern => '%T %D %Z');
my $dt = $s->parse_datetime('05:57:03 08/31/10 MDT');
say $dt->strftime('%A'); # Tuesday
答案 1 :(得分:3)
您应该可以使用以下代码:
my $t = Time::Piece->strptime($string, "%H:%M:%S %m/%d/%y %Z");
但是,至少在我的系统上,我必须将时区MST更改为GMT才能匹配;如果我在你的例子中留下它,我会收到一个错误:
Perl> my $t = Time::Piece->strptime("05:57:03 08/31/10 DST", "%H:%M:%S %m/%d/%y %Z");
[!] Runtime error: Error parsing time at /usr/local/lib/perl/5.10.0/Time/Piece.pm line 469.
如果它适用于您,您将拥有一个Time :: Piece对象,您可以在其上调用,例如{@ 1}}表示星期几作为数字,$t->day_of_week
表示例如'星期二'或$t->day
例如'星期二'。
有关您可以致电的方法的详细信息,请参阅Time::Piece的文档。