關於夏令時誤差

對於跨地域的大型項目來說,不同地域的時間是比較頭疼的問題,這次我就碰到了一個。系統場景是這樣的,一個系統有2加機構,一個在波蘭使用波蘭的時區,一個在上海使用上海的時區,我們的系統爲了方便用戶修改時間,所以時間是和地域的機構所綁定的,同時也允許用戶修改他們自己的時區和時間。在我們的系統時間的組成有2部分組成 sysdate(timezone)+time_off_set,是一個包含時區概念的系統時間+時間偏移量(小時)。

由於測試需要,由於現在波蘭正處於夏令時,當我們的時間便宜了夠大時又超出了夏令時,那麼原則上你的時間一旦超出了夏令時你就應該補一個小時。這個時候java計算夏令時沒有關係,java會自動給你補一個小時。但是plsql就會有問題 我原先使用的plsql如下:

F_GET_DATE_BY_TIME_ZONE(i_organ_id) +hours/24

很不幸這段plsql並沒有爲我們補回那失去的一小時,我現在的做法是時間偏移量使用天,而不用小時。

發佈了26 篇原創文章 · 獲贊 1 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章