2014-06-11 56 views
-2

我有一個java web服務,我通過datetimes和服務器似乎是解釋日期時間不正確和響應與時間設置爲本地機器運行服務。java解析日期時間不正確,並假設本地時區

如果我通過下面的日期時間在網絡上運行的服務,

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對象,什麼是堅持TI的最佳方式mezone之間的客戶端和服務器?

+2

'dateDateFormat'的值是什麼? – Danny

+0

不只是 - 請發佈*所有*的相關代碼。你如何返回數據?目前基本上沒有足夠的信息。 –

+0

@Danny,在我的本地運行的計算機上評估給定值爲「Wed Jun 11 00:00:00 CDT 2014」,我懷疑它可能是網上的其他時區 –

回答

2

在你的「解析」之前致電setTimeZone(TimeZone)

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

謝謝Elliott我會試試這個 –

+0

Elliott,它不是很有效,當我試圖解析值'2014-06-15T05:00:00.000Z'時,評估現在是'6月14日星期六19:00:00 CDT 2014',而不是午夜 –

+1

您似乎對日期包含的內容感到困惑。確保使用'dateDateFormat.format(date);'來顯示值。 –