我做了以下內容:Java日曆返回不同的日期
Calendar c = Calendar.getInstance(TimeZone.getTimeZone("Europe/Berlin"));
c.setFirstDayOfWeek(Calendar.MONDAY);
c.set(Calendar.DAY_OF_MONTH, 9);
c.set(Calendar.MONTH, 3);
c.set(Calendar.YEAR, 2011);
c.set(Calendar.HOUR_OF_DAY, 10);
c.set(Calendar.MINUTE, 20);
int week = c.get(Calendar.WEEK_OF_YEAR)
在我的本地機器我的時區是歐洲/柏林。在我的服務器上是UTC。 在本地框上運行此代碼將返回week = 14. 在我的服務器上運行此代碼將返回week = 15.
我不知道 - 有人可以向我解釋嗎?這使我麻煩大了:-(
感謝任何指針。
乾杯, 基督教
你確定你得到不同的結果?從代碼片段看,它在什麼時區並不重要,因爲無論如何你都是手動設置日期和小時。這個代碼總是會在我腦海中返回15。 – BVSmallman
是的,我非常確定:我已經從Junit測試中複製出來了。它運行本地,但在我的服務器上失敗。 :-( – Christian
我認爲你已經搞亂了你的副本或者你的實驗,如果我在我的機器上運行這個代碼([full copy](http://pastie.org/2972306)),它被設置爲GMT/BST(BST截至當天),我得到了星期= 14。此外,我不明白爲什麼柏林時間與UTC有關 - 在這種情況下 - 上午10點20分(柏林)或8點20分am(UTC - 由於柏林將在4月的DST上,它是+2而不是+1),無論哪種方式仍然是第14周。 –