在日历中设置年份

奥伯龙

我有以下代码。

SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/YYYY HH:mm");
Calendar cal = Calendar.getInstance();
cal.clear();
cal.set(Calendar.YEAR, 2016);
cal.set(Calendar.MONTH, 11);
cal.set(Calendar.DAY_OF_MONTH, 31);
cal.set(Calendar.HOUR_OF_DAY, 22);
Date start = cal.getTime();
System.out.println(dateFormat.format(start));
cal.set(Calendar.YEAR, 2017);
cal.set(Calendar.MONTH, 0);
cal.set(Calendar.DAY_OF_MONTH, 1);
cal.set(Calendar.HOUR_OF_DAY, 5);
Date end = cal.getTime();
System.out.println(dateFormat.format(end));

它打印:

31/12/2016 22:00
01/01/2016 05:00

我希望第二个日期是2017年。这是怎么回事?我正在使用Java 1.7。

安全地绑扎

正确的日期格式应该是dd/MM/yyyy HH:mm,不dd/MM/YYYY HH:mm,请注意小写y

这样就可以正常工作。

文档


Y年周年

年与周年之间的差异说明(从此处开始):

一周是一年,一年中的所有星期都是整周。[...]基本上,这保证了处理一周数据的程序不会在几年之间过渡。[...]这也意味着年初可能不会在一月初开始。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章