我在.vm文件中使用以下代码行。对于这个特定的日期,我希望将日期返回到12/31/14,而是返回12/31/15。有谁知道可能导致今年出现错误的原因是什么?
$date.format('MM/dd/YY', 'Wed Dec 31 07:23:45 CST 2014')
在我的tools.xml文件中,我添加了ComparisonDateTool,如下所示:
<tool class="org.apache.velocity.tools.generic.ComparisonDateTool"
format="MM/dd/yyyy H:m:s" depth="1" skip="month,week"
bundle="org.apache.velocity.tools.generic.times" timezone="CST"/>
答案 0 :(得分:3)
将格式更改为“MM / dd / yy”(请注意小写字母y)
YY(大写Y)是Week Year
日历年的第一周是从getFirstDayOfWeek()开始的最早的七天时段,其中至少包含该年的getMinimalDaysInFirstWeek()天。因此,它取决于getMinimalDaysInFirstWeek(),getFirstDayOfWeek()和1月1日的星期几的值。一年的第1周和下一年的第1周之间的周(不包括)从2到52顺序编号或者53(Julian-Gregorian过渡所涉及的年份除外)。
...
第一周和最后一周(包括)之间的所有周都具有相同的周年值。因此,一周的第一天和最后一天可能具有不同的日历年值。 ... 例如,1998年1月1日是星期四。如果getFirstDayOfWeek()是MONDAY并且getMinimalDaysInFirstWeek()是4(ISO 8601标准兼容设置),那么1998年第1周将于1997年12月29日开始,并于1998年1月4日结束。过去三天的一周是1998年但是,如果getFirstDayOfWeek()是SUNDAY,则1998年第1周从1998年1月4日开始,到1998年1月10日结束; 1998年的前三天是1997年第53周的一部分,其一周是1997年。