保存到数据库的不同日期 – 错误的时区
当我使用Javascript从FullCalendar获取日期时,我有以下值:
Fri Sep 13 2013 08:30:33 GMT-0400 (EDT)
将该日期保存到数据库后,我发现在数据库中有不同的值:
2013-09-13 12:00:00.000000
因此,date会自动转换为UTC并像这样保存到数据库中。 如何将正确的日期保存到数据库中? 我不想硬编码:)
谢谢。
为此,您需要在application.rb中定义您的时区
config.time_zone = 'YOUR-TIME-ZONE' config.active_record.default_timezone = :local config.active_record.time_zone_aware_attributes = false
默认情况下,rails app时区为UTC。 每当保存记录时,日期,日期时间,时间字段都会与DB的时区一起保存,但是当它们在模型中被取回时,它将被转换回UTC。
因此,在您的情况下,在application.rb中设置您的应用程序时区就像这样
config.time_zone = 'Central Time (US & Canada)'
现在,无论何时从数据库中获取记录,它都将始终转换为CST时区,而与DBs时区无关。
希望这会有所帮助。