小编Ser*_*gio的帖子

Rails:将 config.time_zone 设置为服务器的时区?

出于兼容性原因,我需要在服务器的本地时区中存储和显示所有日期。为此,我在以下配置了 rails 应用程序application.rb

# Do not convert database DATETIME / DATE columns to UTC:
config.active_record.default_timezone = :local
Run Code Online (Sandbox Code Playgroud)

当我将日期存储在服务器的本地时区中时,它可以正常工作。然而,当检索数据时,Rails 将其转换为 UTC,因此例如Post.find(1).posted返回2016-02-02 18:06:48 UTC但它实际上存储2016-02-02 13:06:48在数据库中。

如何防止 Rails 将其转换为 UTC?

我认为将应用程序时区设置为服务器的本地时区会有所帮助,所以我想设置config.time_zone为服务器的本地时区并尝试:

config.time_zone = Time.now.zone
Run Code Online (Sandbox Code Playgroud)

但它的问题在于它返回一个三个字符的时区代码,如COTconfig.time_zone 需要一个时区名称,如Bogota

如何将三个字符的代码转换为完整的时区名称?或者,如何获取本地时区名称?或者,如何配置 Rails 以不将数据库日期转换为 UTC?

ruby datetime ruby-on-rails date

4
推荐指数
1
解决办法
7443
查看次数

标签 统计

date ×1

datetime ×1

ruby ×1

ruby-on-rails ×1