gpt4 book ai didi

ruby-on-rails - 使用 beginning_of_month 时 Rails 5 中的时区

转载 作者:行者123 更新时间:2023-11-29 12:25:11 25 4
gpt4 key购买 nike

我的 Rails 5 应用程序设置为 BRT(巴西时区),我的 Postgres 数据库设置为 UTC。我从来不用担心这个,因为 Rails 在读取或写入数据库时​​总是计算出正确的时间。因此,例如,当我有一个带有 time = 15:00 的输入字段时,它会将 18:00 写入数据库,当从数据库中读取时,它会返回 15:00 再次。完美!

但现在我想将月初写入数据库:

Time.now.beginning_of_month2017-04-01 00:00:00

Payment.create(
:time => Time.now.beginning_of_month
)

现在,它无需转换为 UTC 即可准确地将此(以 BRT 格式)写入数据库。当我稍后从数据库中读取它时,它会将其转换为错误的 BRT 2017-03-31 21:00:00

当然,我可以在将时间保存到数据库之前将其转换为 UTC。但我觉得很奇怪,Rails 总是负责转换,而在这种情况下却没有。

我希望问题变得清楚。

有什么想法吗?

最佳答案

我找到了一篇关于这个主题的非常好的文章:

https://www.varvet.com/blog/working-with-time-zones-in-ruby-on-rails/

基本上,我必须要做的是将 Time.now 更改为 Time.current,因为 Time.now 会忽略时区设置。

关于ruby-on-rails - 使用 beginning_of_month 时 Rails 5 中的时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43682860/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com