Perl工作周转换不正确

时间:2014-03-04 05:31:13

标签: perl date datetime-format

我遇到了一个奇怪的问题。 我的日期是 2月25日星期二00:20:13 。 我的任务是计算周数和工作日。 我尝试了以下

use Time::Piece;

my $date="Tue Feb 25 00:20:13 2014";
my $db_date=Time::Piece->strptime($date, "%a %b %d %H:%M:%S %Y");
my $ww=$db_date->strftime("%W.%w-%Y);
print $ww;

当我运行脚本时,我得到输出为

08.2-2014

这是错误的,预期的输出是

09.2-2014

我想知道我哪里出错了? 请帮忙......

1 个答案:

答案 0 :(得分:3)

您正在使用“%W”strftime()转换。 Time :: Piece没有指定“%W”的含义,但是等效C函数的文档说“%W”开始计算包含星期一的第一周。听起来你想要ISO 8601周数,它开始计算包含至少四天的第一周,在这种情况下,“%V”转换应该做你想要的。