Rails:确保日期时间使用系统时间



在rails应用程序中,我们的环境文件中将时区设置为UTC。当在我们的生产或暂存服务器上运行时,这不会造成任何问题。然而,我们的本地开发机器都没有在系统时钟中设置为UTC,这导致在比较日期时出现一些测试失败。这是因为当我们调用DateTime.now时,Rails使用UTC,其中MySQL数据库使用系统时间(在我的例子中是CST)。

有没有办法确保在某些情况下,DateTime.now不使用UTC时区?我想我想要的是一种纯粹的SQL更新日期字段的方式,它绕过了Rails引擎。

实际上,通过将本地设置添加到相应的config/environments文件中,您应该能够告诉rails只对development和其他环境(如test)使用本地设置:

config.time_zone = "Eastern Time (US & Canada)" #Change this
config.active_record.time_zone_aware_attributes = false
config.active_record.default_timezone = :local

这对我来说很有效,但我把包括制作在内的一切都调到了当地时间。但我没有;我不明白为什么这种方法不适合每个环境!

相关内容

  • 没有找到相关文章

最新更新