動作
工作單 #402
進行中驗證 data 與 web 時區問題
開始日期:
2026-02-12
完成日期:
完成百分比:
0%
概述
先以此設定:
- db connection string : UTC
- data timezone: UTC
- web timezone: taipei
確認:
- db 應為 UTC
- web UI 應為 +8
- web 查詢條件 應為 +8
- data API 回應應為 UTC
是由 evan lu 於 16 天 前更新
根據測試觀察與分析,確認時區偏移問題原因為:
容器透過Dockerfile設定成UTC時間;
data專案在@Configuration執行了TimeZone.setDefault,
但並沒有影響到user.timezone,user.timezone依然是UTC。
當@CreationTimestamp時系統拿到的是UTC時間(A time),
但當Hibernate要進行與DB溝通的儲存時,詢問了TimeZone.getDefault,
獲得了這是UTC+8的資訊,於是把這個A time當成UTC+8時間,進行了-8的調整,
於是原本的UTC時間變成UTC-8時間(B time)被存入DB。
B time(存入時間) 比 A time(實際時間) 向後偏移8小時。
動作