我有点困惑。我一直在使用Java中的Calendar和GregorianCalendar类,我一直在打印小时,但它说4,我现在是11。
我的问题是,小时是否以当地时间为准?它是基于特定的时区吗?
我环顾四周,但我没有找到明确的答案。
Calendar today = new GregorianCalendar();
int y = today.get(Calendar.YEAR);
int h = today.get(Calendar.HOUR);
int ap = today.get(Calendar.AM_PM);
System.out.println(y + " " + h + " " + ap);
我的输出:
2013 4 1
答案 0 :(得分:0)
GregorianCalender的no-arg构造函数使用Timzone.getDefault()
作为其时区。这是执行代码的JVM的时区(或者换句话说:本地时间)。所有日历字段(包括Calendar.HOUR
)均基于此时区。
如果这与当地时间不同,则JVM位于不同的时区,或者JVM(或者更确切地说是其托管计算机)配置不正确。