0

我有点困惑。我一直在使用 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
4

1 回答 1

0

GregorianCalender 的无参数构造函数Timzone.getDefault()用作其时区。这是执行代码的 JVM 的时区(或者换句话说:本地时间)。所有日历字段,包括Calendar.HOUR,都基于此时区。

如果这与您的本地时间不同,则 JVM 位于不同的时区,或者 JVM(或更确切地说是其托管计算机)配置不正确。

于 2013-08-30T20:05:40.817 回答