我正在開發一個存儲會議開始和結束日期的應用程序。直到現在,我在比利時發展,我的服務器在法國,所以一切都在同一時區,沒有問題。但今天,我在舊金山,我的服務器在法國,我注意到我有一個錯誤。我自動調整日期顯示根據客戶端本地時區,這是我今天的GMT-8。我的服務器運行在法國(GMT + 1)的Hibernate和MySQL。當我使用phpMyAdmin查看數據庫時,發現日期設置爲「2010-06-07 00:00:01」,但在我的Flex客戶端中顯示「2010-06-06 15:00:01」。遺失日期和時區
最終,我想要的是日期顯示在事件的當地時區,這是我設置的日期。因此,當我在比利時時,我將事件的開始日期設置爲「2010年 - 06-07 00:00:01「我想以這種方式檢索它
但是我失去了什麼層適應什麼。時區存儲在DATETIME MySQL列中(我在MySQL中看不到它)?在將它傳遞給具有時區信息的java.lang.Date時,Hibernate是否支持它?最終,解決這個混亂的最好辦法是什麼?
這對我來說並不明確:「如果我想要的是日期顯示在事件的本地時區中,這是我設置的日期。」誰是「我」?用戶 ?會議發生在一個固定的已知時區,或取決於會議的位置(由用戶設置?) – leonbloy 2010-06-05 00:10:33
'java.util.Date'沒有時區信息。這通常是格林威治時間(大紀元時間)。順便說一句:時間部分似乎是在你的Flex應用程序無關,爲什麼你顯示它? – BalusC 2010-06-05 00:13:25
我錯過了什麼嗎?只有使用NOW()/ CURRENT_TIMESTAMP/etc來填充DATETIME時,此問題纔會存在。如果用戶提供日期和時間,應該寫入數據庫 - 時區不應生效。在不同時區提供基於時間的通知將是一個問題,但是...... – 2010-06-05 00:30:06