2013-08-30 22 views
0

我有點困惑。我一直在使用Java中的Calendar和GregorianCalendar類,並且我一直在打印這個小時,但它說的是4,現在是11。日曆類中的HOUR是否基於特定時區?

我的問題是,是基於當地時間的小時?它是基於特定時區嗎?

我環顧四周,但我還沒有找到明確的答案。

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

顯示與您的打印方式相關的一些代碼。 – kosa

+0

編輯顯示代碼和輸出。 – lonewookie

+1

你用什麼IDE?...當我運行這個我得到當地時間(我使用netbeans)... – gtgaxiola

回答

0

GregorianCalender的無參構造函數使用Timzone.getDefault()作爲它的時區。這是執行代碼的JVM的時區(或換言之:本地時間)。所有日曆字段(包括Calendar.HOUR)均基於此時區。

如果這與當地時間不同,則JVM處於不同的時區或JVM(或其主機計算機)配置不正確。