0

新しいオブジェクトを作成し、コンソールから同じものを保存しました。列が GMT 形式であることに気付きましたがcreated_at、コンソールで a を実行すると、自分のタイム ゾーンで時刻が取得されます。ローカル時間でコンソールからレコードを保存するにはどうすればよいですか?updated_atTime.now

4

1 に答える 1

2

Rahul さん、Rails は日付を UTC (GMT など) 形式で保存するために、その道を正しく進んでいます。これを元に戻さないことを強くお勧めします。

Rails (および ruby​​) には、正しい現地時間で値を表示するのに役立つ Time.zone、Time.local、およびその他のメソッドが用意されています。あなたの現地時間はシステムの設定によって決定されますが、あなたの現地時間はシステムを使用している他のユーザーの時間と必ずしも同じではありません。これを実際の Web サーバーに置くと、人々は異なるタイム ゾーンにいる可能性があります。application.rbこのセクションでは、デフォルトで使用するタイム ゾーンを Rails に指示できます。

# Set Time.zone default to the specified zone and make Active Record auto-convert to this zone.
# Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC.
config.time_zone = 'Eastern Time (US & Canada)'

これは、ほとんどのユーザーが同じタイムゾーンにいる場合には問題なく機能する可能性がありますが、ユーザーがタイムゾーンで日付/時刻を表示できるようにする場合は、ユーザー レコードにゾーンを保存することをお勧めします。time_zone_selectその情報を簡単に取得できるヘルパーがあります。

于 2012-11-16T22:30:38.773 に答える