2011-10-27 58 views
0

有沒有人經歷過Java日曆中的這種奇怪的閱讀?下面的代碼片斷是寫在Groovy(Grails中)Java日曆的奇怪閱讀

Calendar cal = GregorianCalendar.getInstance(TimeZone.getTimeZone("Asia/Singapore"))  
cal.setTime(this.timeEnd) 
def endHour = cal.get(Calendar.HOUR_OF_DAY) 
def endMinute = cal.get(Calendar.MINUTE) 
println "cal gettime ${cal.getTime()} -timeend- ${this.timeEnd} end hour!!! $endHour && $endMinute" 

而且它還有我下面的結果

CAL GETTIME週四1月1 16點20分00秒GMT + 08:00 1970年-timeend- 1970-01-01 16:20:00.0結束小時!!!

,而我的日期顯示16:20,檢索單個字段使我15:50。 任何人有任何想法?

謝謝 羅伯特

回答

1

您的兩個時區因爲$ {cal.getTime()}和$ {} this.timeEnd是日期值,其格式爲默認的時區。您需要SimpleDateFormat才能顯示特定時區的日期。

+0

我設置日曆對象的時區,因爲我打印出來了,它顯示了正確的時間(在我的時區),但是檢索單個字段(小時和分鐘)並沒有給我適當的時間(如在我的時區)..早在30分鐘就顯示出來了..我會嘗試使用SimpleDateFormat,但它似乎不太適合使用它來獲取小時和分鐘組件......謝謝! –

0

更改的this.timeEnd"Asia/Singapore"時區可以通過一個半小時已經放回您最初的時間

檢查timeanddate.com