Ruby on rails 使用月初时Rails 5中的时区
我的Rails 5应用程序设置为BRT(巴西时区),我的Postgres数据库设置为UTC。我从来不用担心这一点,因为Rails在读取或写入数据库时总是计算正确的时间。因此,例如,当我有一个输入字段Ruby on rails 使用月初时Rails 5中的时区,ruby-on-rails,postgresql,datetime,ruby-on-rails-4,ruby-on-rails-5,Ruby On Rails,Postgresql,Datetime,Ruby On Rails 4,Ruby On Rails 5,我的Rails 5应用程序设置为BRT(巴西时区),我的Postgres数据库设置为UTC。我从来不用担心这一点,因为Rails在读取或写入数据库时总是计算正确的时间。因此,例如,当我有一个输入字段time=15:00时,它将18:00写入数据库,当从数据库读取时,它将再次返回15:00。太好了 但现在我想将月初写入数据库: 时间。现在。从2017-04-01 00:00:00开始的一个月的开始 Payment.create( :time => Time.now.beginning_o
time=15:00
时,它将18:00
写入数据库,当从数据库读取时,它将再次返回15:00
。太好了
但现在我想将月初写入数据库:
时间。现在。从2017-04-01 00:00:00开始的一个月的开始
Payment.create(
:time => Time.now.beginning_of_month
)
现在,它将这个(在BRT中)准确地写入数据库,而不转换为UTC。当我稍后从数据库中读取此信息时,它将其转换为BRT2017-03-31 21:00:00
,这是错误的
当然,在将时间保存到数据库之前,我可以将时间转换为UTC。但我觉得奇怪的是,Rails总是负责转换,而在本例中却没有
我希望问题清楚了
有什么想法吗?我发现了一篇关于这个主题的非常好的文章: 基本上,我必须更改
时间。现在
更改为时间。当前
更改为时间。现在忽略时区设置