2013-07-02 39 views
0

我在發佈java.util.Date字段時遇到了澤西休息服務的問題。JSON日期解析器,發佈日期不多

以下是JSON格式的服務請求。

{ 
"fromDate":"2012-06-30", 
"toDate":"2013-07-01" 
} 

當相同的JSON對象映射到java對象時。日期轉換爲

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<search> 
    <fromDate>2012-06-29T19:00:00-05:00</fromDate> 
    <toDate>2013-06-30T19:00:00-05:00</toDate> 
</search> 

任何想法或任何線索爲什麼發生這種情況。提前致謝。

回答

2

日期代表同一時刻。第一個是UTC,第二個是UTC減5小時。

2012-06-29T19:00:00-05:00 

是6月29日19:00在UTC時間5小時的時區。

所以,如果你表達這個日期在UTC時間,你要加5個小時,這還給日期

2012-06-30T00:00:00 
+0

感謝您的回答。你能分享什麼是與日期一起工作的最佳實踐嗎? – gmeka

+0

@javabie最佳實踐是:**「工作/思考/全球商店,本地展示」**。數據庫中的大部分商業邏輯和存儲應該是[UTC](http://en.wikipedia.org/wiki/Coordinated_Universal_Time)/ GMT。通常,只有在顯示給用戶時(在應用程序的界面中),您才轉換爲分區日期時間,或者用戶影響業務邏輯。像「今天的銷售數據報告」,其中「今天」是指用戶自己的本地時區。並且*總是*在做日期時間工作時考慮時區,就像您應該總是在處理文本文件時考慮字符編碼一樣。 –

1

時間應該是一個提示。它們相距5個小時,所以這是一個時區調整問題。 JSON時間被解釋爲UTC,然後調整爲EDT。