为什么DateTime的strftime给出了错误的一年,当我从一年结束的日期中减去天数?

时间:2016-06-29 14:26:05

标签: perl datetime

我必须打开一些在文件名中有日期的日志。所以我试图在某个日期打开所有文件。

我正在使用DateTime。我这样做:

ForeignKey

但是输出显示了接近年底的日期错误的年份:

do 
{
    $datechoice = $today->strftime('%G%m%d'); #YearMonthDay
    $date_for_graph = $today->strftime('%d/%m/%G');
    # unshift @Log_Period_Time, "$date_for_graph";
    print $datechoice." - ".$date_for_graph."<br>";
    $today->subtract(days => 1);
} while($datechoice > 20141107);

为什么会这样?

1 个答案:

答案 0 :(得分:7)

根据ISO 8601 week number calendar,strftime代码%G是年份。 12月底的天数可能在下一个ISO年份,1月初的天数可能在前一天。请改用%Y