我对 GregorianCalendar 有疑问,所以请您帮我解决。首先,我会给你我的代码:
private String changeClock(String day, String clock, int change) {
String time="";
DateFormat df=new SimpleDateFormat("yyyy-MM-dd hh:mm");
try {
Date d=df.parse(day+" "+clock);
GregorianCalendar g=new GregorianCalendar();
g.setTime(d);
g.add(GregorianCalendar.HOUR_OF_DAY, change);
time=g.get(GregorianCalendar.YEAR)+"-"
+(g.get(GregorianCalendar.MONTH)+1)+"-"
+g.get(GregorianCalendar.DAY_OF_MONTH)+" "
+g.get(GregorianCalendar.HOUR_OF_DAY)+":"
+g.get(GregorianCalendar.MINUTE);
} catch (Exception e) {
e.printStackTrace();
}
return time;
}
让我解释一下发生了什么。我有一个带有 + 和 - 按钮的 GUI。当有人按下 + 时,它会增加一小时,或者如果按下 - 则需要一小时。
现在例如,时间是 23:00,我按 +,一切正常,它跳到第二天的 00:00。问题出现在 12:00。如果是 12:00 并且我按 + 它会转到 1:00,然后继续。即使在 2x12 小时或 21465x12 小时之后,它也不会移动到第二天。如果我可以这么说,倒退会好一点。当它是 00:00 并且我按下 - 它会更改为昨天 23:00(日期也会更改)。如果我然后按 + 它也会改变一天(在这种情况下到今天)。
我做错了什么或者我应该在我的代码中写什么?
谢谢你们的帮助。