0

我创建了一个新对象并通过控制台保存了它。我注意到列是 GMT 格式的created_atupdated_at但是当我Time.now在控制台中执行时,我得到了我所在时区的时间。如何使用本地时间从控制台保存我的记录?

4

1 回答 1

2

Rahul,Rails 正确地以UTC(如 GMT)格式存储日期。我强烈建议不要撤消此操作。

Rails(和 ruby​​)提供 Time.zone、Time.local 和其他方法来帮助您以正确的本地时间显示值。您的当地时间是由您的系统设置决定的,但您的当地时间不一定与使用该系统的其他人的当地时间相同。一旦你把它放在野外的网络服务器上,人们可能在不同的时区。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 回答