2013-04-23 55 views
0

我對Spring MVC如何處理日期有些困惑。Spring MVC控制器接收錯誤的UTC偏移日曆

我做了一個接收日曆對象的控制器。

@RequestParam(value = "startdate", required = false) 
@DateTimeFormat(pattern="yyyy-MM-dd'T'HH:mm:ss.SSSZ") Calendar startDate 

然後我寫了一個單元測試,將下面的日期2012-01-10T11:00:00.000 + 00:00但是當我再看看在服務器端到達什麼,我打電話

int i = startDate.get(Calendar.HOUR_OF_DAY); 

我最終以i = 12,而不是預期的11.這是正常的行爲?另外,如果這是我錯過了什麼,什麼是最好的方式來實際到達11:00:00?這可能有助於提及我目前處於UTC + 1時區並且服務器在我的機器上本地運行

回答

1

我相信已經找到答案。它似乎有事情做與他們所在時區的JVM在運行。我basicly將此添加到我的啓動方法

System.setProperty("user.timezone", "UTC"); 
    TimeZone.setDefault(TimeZone.getTimeZone("UTC")); 

這種固定的行爲,但我希望我沒有打破任何其他應用程序以日期運行。單元測試仍然是綠色的,但讓我們希望它們中沒有誤報