为什么 GregorianCalendar 根据系统时间设置 HOUR(AM/PM)
Why GregorianCalendar sets HOUR depending on System time(AM/PM)
我只是在创建一个 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
当系统时间为下午时,输出为
Date and Time: Tue Feb 09 18:45:23 IST 2016
现在我的问题是为什么输出会随着系统时间的变化而变化?
new GregorianCalendar()
字段使用默认时区中的当前时间设置。因此,AM/PM 标志的设置取决于默认时区中的当前时间是上午还是下午。
当您将 HOUR
设置为 6 时,AM/PM 标志不会更改,结果日历会根据当前时间设置为早上 6 点或下午 6 点。
如果您将 HOUR_OF_DAY
设置为 6,则无论当前时间如何,日历都将设置为早上 6 点。
我只是在创建一个 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
当系统时间为下午时,输出为
Date and Time: Tue Feb 09 18:45:23 IST 2016
现在我的问题是为什么输出会随着系统时间的变化而变化?
new GregorianCalendar()
字段使用默认时区中的当前时间设置。因此,AM/PM 标志的设置取决于默认时区中的当前时间是上午还是下午。
当您将 HOUR
设置为 6 时,AM/PM 标志不会更改,结果日历会根据当前时间设置为早上 6 点或下午 6 点。
如果您将 HOUR_OF_DAY
设置为 6,则无论当前时间如何,日历都将设置为早上 6 点。