1

我只是在创建一个 java.util.GregorianCalender

GregorianCalendar calender = new GregorianCalendar();

现在设置小时,分钟,秒和毫秒如下

c.set(Calendar.HOUR, 6);
c.set(Calendar.MINUTE, 45); 
c.set(Calendar.SECOND, 30);         
c.set(Calendar.MILLISECOND, 345);

现在使用 getTime() 方法打印输出

System.out.println("Date and Time: "+c.getTime());

当系统时间为上午时,输出为

Date and Time: Tue Feb 09 06:45:23 IST 2016

当系统时间为 PM 时,输出为

Date and Time: Tue Feb 09 18:45:23 IST 2016

现在我的问题是为什么输出会随着系统时间而变化?

4

1 回答 1

2

new GregorianCalendar()使用默认时区中的当前时间设置字段。因此,AM/PM 标志的设置取决于默认时区中的当前时间是上午还是下午。

当您设置HOUR为 6 时,AM/PM 标志不会更改,生成的日历将根据当前时间设置为上午 6 点或下午 6 点。

如果设置HOUR_OF_DAY为 6,则日历将设置为早上 6 点,无论当前时间如何。

于 2016-02-09T11:39:43.113 回答