我正在寻找转换我们的Rails 2.3应用程序来正确处理时区(目前一切都在UTC这是不正确的,但是方便! )。正确存储MySQL数据库中的TimeZone日期为一个Rails应用程序
我在environment.rb中这些设置:
config.active_record.default_timezone = :utc
config.time_zone = "UTC"
展望未来,在我们的应用程序的每个请求我计划做以下设置来设置时区:
Time.zone = user.time_zone
在哪里user.time_zone
是他们选择的偏好(例如US Pacific Time
)。
这在应用程序中正常工作,但我的问题涉及Rails然后存储在MySQL数据库中。如果用户选择2009年6月1日的日期,则将其存储在数据库中的DATETIME
字段中,但以与时区偏移量存储在数据库中。例如,如果用户选择了GMT+6
时区,则2009年6月1日的选定日期以2009-06-01 06:00:00 UTC
结尾于数据库中。
我本以为这将被存储为2009-06-01 00:00:00 UTC
在数据库中。我的想法是正确的还是Rails在这里做了一些意想不到的事
您是否需要在用户的时区中显示日期,或者是否需要将其专门存储在该时区中? – 2009-06-01 15:17:53
Chris 我想以UTC格式存储它,并且只显示用户时区中的日期 – Olly 2009-06-02 09:19:04