Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将1小时添加到java.util.Calendar对象(2015年12月31日23:00:00)将得到2015年1月1日00:00:00_Java_Datetime - Fatal编程技术网

将1小时添加到java.util.Calendar对象(2015年12月31日23:00:00)将得到2015年1月1日00:00:00

将1小时添加到java.util.Calendar对象(2015年12月31日23:00:00)将得到2015年1月1日00:00:00,java,datetime,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)

这是我的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年?

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

dd-MMM-yyyy HH:mm:ss

您的代码与输出不匹配。它返回“日期是:2015年12月31日22:00:00”和“日期2是:2015年12月31日23:00:00”非常感谢!那有帮助