ruby-on-rails - Rails 中的时区设置
问题描述
我正在尝试将 ActiveRecord 的时区从UTC
设置为current time zone
。这就是我最终的结果
应用程序.rb
module application
class Application < Rails::Application
config.load_defaults 5.2
config.time_zone = 'Tokyo'.freeze
config.active_record.default_timezone = :local
end
end
我已经关闭了服务器并重新启动并创建了一个对象,然后当我检查对象时created_at
,似乎 ActiveRecords 仍然根据 UTC 时间而不是Tokyo
时间记录数据。
有什么解决方案吗?
解决方案
它总是将 DateTime 的数据记录在数据库中,如果你调用UTC
它,它将根据你的调用进行转换config.time_zone
object.created_at
比方说,它存储2018-09-17 04:41:00
在Fri, 17 Sep 2018 04:41:00 UTC +00:00
数据库中。
如果您将时区配置为,Tokyo
那么结果是Fri, 17 Sep 2018 13:41:00 JST +09:00
此外,您可以使用.in_time_zone
方法来转换基于该区域的 DateTime。这是.in_time_zone
推荐阅读
- javascript - JS,CSS)从字符串中获取字母并使每个字母顺利落下(NO JQUERY
- javascript - 每秒调用一次函数 max
- verilog - 在 Verilog 中声明向量端口而不指定它们的大小
- java - JPanel 位置被 BufferStrategy 重击
- c# - 基于内部属性展平集合
- java - 尝试为数字创建验证,尝试测试时崩溃
- python - Python 中的 Excel - 根据列值缩小行
- haskell - 试图实现“迭代器模式的本质”
- javascript - 具有键嵌套状态的动态 setState()
- python - 有没有更好的方法将写作与背景分开?