SimpleDateFormat(“ dd-MMM-YYYY”)打印年份提前一年

我在代码中使用了SimpleDateFormat(“ dd-MMM-YYYY”),输出错误。

    SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MMM-YYYY");

System.out.println("Actual date : "+new Date()+" after Formatting : "+ dateFormat.format(new Date()));

上面的代码给出了:

上面的代码是打印日期,年份提前一年。并且此问题仅可在2014年12月28日至31日之间复制。

提前致谢。-阿杰

回答:

您正在使用YYYY,这是“ ISO-8601周年”。几乎应 始终 将其与w“每年的周” 结合使用。您要yyyy显示正常的日历年。

它们不同的原因是,一年中的第一个ISO-8601周是包含至少4天的第一个(周一至周日)周。这意味着一年的第一周就是包含第一个星期四的一周。由于2015年1月1日是星期四,因此意味着2014-12-29到2015-01-04的一周都是“

2015年,即第一年的一周”。(如果您看到12月28日…,我会感到很惊讶。)

在其他年份,一年的前几天在上一年的第52周或第53周。例如,2010年1月1日位于2009年第53周,而2011年1月1日位于2010年第52周。

以上是 SimpleDateFormat(“ dd-MMM-YYYY”)打印年份提前一年 的全部内容, 来源链接: utcz.com/qa/411298.html

回到顶部