我遇到了一个奇怪的问题。 我的日期是 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
我想知道我哪里出错了? 请帮忙......
答案 0 :(得分:3)
您正在使用“%W”strftime()转换。 Time :: Piece没有指定“%W”的含义,但是等效C函数的文档说“%W”开始计算包含星期一的第一周。听起来你想要ISO 8601周数,它开始计算包含至少四天的第一周,在这种情况下,“%V”转换应该做你想要的。