Railsアプリのデータベースにユーザーのタイムゾーンを保存するには、数値オフセット(つまり、-8)または名前(太平洋標準時(米国およびカナダ))を保存する方がよいでしょうか?
名前を保存すると、アプリケーションでDSTをより適切に処理できるようになりますが、将来、Railsが更新され、タイムゾーンの名前が異なる場合はどうなりますか?
Railsアプリのデータベースにユーザーのタイムゾーンを保存するには、数値オフセット(つまり、-8)または名前(太平洋標準時(米国およびカナダ))を保存する方がよいでしょうか?
名前を保存すると、アプリケーションでDSTをより適切に処理できるようになりますが、将来、Railsが更新され、タイムゾーンの名前が異なる場合はどうなりますか?
タイムゾーン名を使用する必要があります。タイムゾーン名が変更されることを心配する必要はありません。それらは変わりません。下位互換性のある名前を保持するためにタイムゾーンデータベースを維持している人々からの強いコミットメントがあるようです。たとえば、のような新しい名前America/New_York
が途中で追加されましたが、のような「古い」名前はUS/Eastern
引き続き機能します。さらに、タイムゾーン定義は、ルールが異なる時間に異なるタイムゾーンをサポートしているため、1つのタイムゾーンのルールが更新されても、過去の日付の現地時間は変更されないままである必要があります(ルールが変更されて、意味)。
数値オフセットの保存は、特定のタイムスタンプの保存と併せて適切です。これにより、UTCとの間の変換が簡単かつ明確になり、同じタイムゾーンの異なる日付でのオフセットの値は無関係になります。