2013-04-23 59 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")); 

这种固定的行为,但我希望我没有打破任何其他应用程序以日期运行。单元测试仍然是绿色的,但让我们希望它们中没有误报