私はRails 2.3アプリケーションをタイムゾーンを正しく処理するように変換しています(現時点ではすべてがUTCで正しくありませんが、はです)! )。RailsアプリケーションのMySQL DBに日付を正しく格納する
私はenvironment.rbにでこれらの設定を持っている:
config.active_record.default_timezone = :utc
config.time_zone = "UTC"
は、私はタイムゾーンを設定するには、次の設定を行うことを計画我々のアプリ内の各リクエストに応じて、今後:
Time.zone = user.time_zone
user.time_zone
が選択されたものです(例:US Pacific Time
)。
これはアプリで問題なく動作しますが、私の質問はMySQLデータベースにどのようなRailsが格納されているのかと関係しています。ユーザーが2009年6月1日の日付を選択すると、データベースのDATETIME
フィールドにUTCで格納されますが、とのタイムゾーンオフセットが格納されます。たとえば、ユーザーがGMT+6
タイムゾーンを選択した場合、2009年6月1日の選択日付はデータベースで2009-06-01 06:00:00 UTC
となります。
これは、データベースに2009-06-01 00:00:00 UTC
として保存されると予想されます。私の考えは正しいのですか、ここで予期せぬことをしているRailsですか?
ユーザーのタイムゾーンに日付を表示するだけでいいですか、それともそのタイムゾーンに具体的に保存することは重要ですか? –
Chris 私はUTCで保存し、ユーザーのタイムゾーンに日付を表示したい – Olly