我有一个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对象,以及在客户端和服务器之间保留时区的最佳方法是什么?
答案 0 :(得分:2)
在“解析”之前致电setTimeZone(TimeZone)。
dateDateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));