2
爲了將用戶的時區存儲在Rails應用程序的數據庫中,最好是存儲數字偏移量(即-8)還是名稱(太平洋時間(美國&加拿大))?時區應該存儲爲字符串還是整數偏移量?
存儲名稱允許應用程序更好地處理DST,但是如果將來Rails會更新並且具有不同的時區名稱?
爲了將用戶的時區存儲在Rails應用程序的數據庫中,最好是存儲數字偏移量(即-8)還是名稱(太平洋時間(美國&加拿大))?時區應該存儲爲字符串還是整數偏移量?
存儲名稱允許應用程序更好地處理DST,但是如果將來Rails會更新並且具有不同的時區名稱?
您應該使用時區名稱。不要擔心時區名稱會發生變化。他們不會改變。似乎有一個堅定的承諾,從你維護timezone database保持向後兼容性名稱,如果他們曾經這樣做的人。例如,沿途添加了America/New_York
等新名稱,但US/Eastern
等「舊」名稱仍然有效。此外,時區定義支持規則在不同時間不同的時區,因此即使更新了一個時區中的規則,過去日期的本地時間也應保持不變(除非規則被更改爲糾正定義)。
存儲數字偏移量與存儲特定時間戳一起使用是適當的,因爲它允許方便地進行UTC和來自UTC的明確轉換,並且同一時區中不同日期的偏移值是不相關的。