java错误地解析日期时间并假设当地时区

时间:2014-06-11 18:53:38

标签: java web-services datetime timezone

我有一个java web服务,我正在传递日期时间,并且服务器似乎错误地解释了日期时间,并且响应时间设置为运行服务的本地计算机的时区。

如果我将以下日期时间传递给网络上运行的服务,

startDate: "2014-06-11T05:00:00.000Z"

然后返回的日期时间为

startDate: "Wed Jun 11 00:00:00 UTC 2014"

但是,如果我将相同的日期发布到服务的本地实例,则返回的日期时间是我的时区(CDT)

startDate: "Wed Jun 11 00:00:00 CDT 2014"

我发现无论我传入的是什么小时值,结果都是午夜。在服务器端,我从代码接收和解析日期时间的代码是

dateDateFormat.parse("2014-06-11T5:00:00.000Z")

评估为

Wed Jun 11 00:00:00 CDT 2014

如何正确接收和解析ISOStrings到Date对象,以及在客户端和服务器之间保留时区的最佳方法是什么?

1 个答案:

答案 0 :(得分:2)

在“解析”之前致电setTimeZone(TimeZone)

dateDateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));