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