Java和JavaScript之間的`Date`交換的最佳實踐我正在編寫需要在Java和JavaScript之間傳輸Date的Web應用程序。首先,我使用毫秒來交換日期,這裏提到:https://stackoverflow.com/a/1007854/4675827。考慮到DST
但是,遇到DST時出現問題,稱爲夏令時。 Java和JavaScript的毫秒值有時會有所不同。特別是當我只存儲日期的日期部分時,我節省了時間:「2015-10-15 00:00:00」,但是當我將毫秒值傳遞給JavaScript時,它變成了「2015-10-14 23: 00:00" 。因此,日期部分有1天的差異。
我想知道在Java和JavaScript之間交換Date
數據的最佳實踐是什麼,或者我可以關閉Java中的DST?
在此先感謝!
最後,我能夠通過改變傑克遜映射器,這是用來進行序列化和反序列化JSON對象的時區設置來禁用DST。
我已更改爲北京時間的GMT + 8。它根本不使用DST。
mapper.setTimeZone(TimeZone.getTimeZone(ZoneId.of("GMT+8")));
最好的做法是不使用客戶端日期來存儲數據庫 – Tushar
如果你做'var d = new Date(Date.parse(2015-10-15 00:00:00));'then時間保持正確,但仍然從JS的日期不應該去數據庫 – Saar
@薩爾 - 使用* Date.parse *是多餘的,因爲傳遞給Date構造函數的字符串無論如何都被解析。但是,不建議使用內置方法來解析日期字符串。此外,您建議的格式與ECMA-262 ed 5和6中規定的ISO 8601格式不一致,因此結果取決於實施。 – RobG