将java.util.Calendar对象添加1小时(31-DEC-2015 23:00:00)将于2015年1月1日00:00:00

时间:2015-12-08 08:11:20

标签: java datetime

这是我的Java代码

Calendar c = Calendar.getInstance(TimeZone.getTimeZone("GMT"));

c.set(Calendar.YEAR, 2015);
c.set(Calendar.MONTH, 11);
c.set(Calendar.DAY_OF_MONTH, 31);
c.set(Calendar.HOUR_OF_DAY, 22);
c.set(Calendar.MINUTE, 0);
c.set(Calendar.SECOND, 0);

SimpleDateFormat sdf = new SimpleDateFormat("dd-MMM-YYYY HH:mm:ss");
System.out.println("date  is : "+sdf.format(c.getTime()));

c.add(Calendar.HOUR_OF_DAY, 1);

System.out.println("date2  is : "+sdf.format(c.getTime()));

这是输出

date  is : 31-Dec-2015 23:00:00
date2  is : 01-Jan-2015 00:00:00

为什么第二份印刷声明中的年份没有变为2016年?

1 个答案:

答案 0 :(得分:0)

我尝试了您的代码,它可以根据需要运行,但您应该将格式更改为

dd-MMM-yyyy HH:mm:ss