为什么GregorianCalendar根据系统时间(上午/下午)设置小时

时间:2016-02-09 11:33:09

标签: java gregorian-calendar java.util.calendar

我只是创建了一个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());

当系统时间在AM时,输出为

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

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

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

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

1 个答案:

答案 0 :(得分:2)

使用默认时区中的当前时间设置

new GregorianCalendar()个字段。因此,根据默认时区中的当前时间是AM还是PM来设置AM / PM标志。

当您将HOUR设置为6时,AM / PM标志不会更改,结果日历将在早上6点或下午6点设置,具体取决于当前时间。

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