我在轨道上使用红宝石。当您保存类型为datetime
的列时,将为日期和时间存储一个固有时区。如何存储类型为date
的列,尤其是该日期是否与任何时区相关?
答案 0 :(得分:0)
活动记录尝试将所有存储的日期作为UTC进行检索,尽管您可以将其配置为使用本地时间:
http://guides.rubyonrails.org/configuring.html#configuring-active-record
config.active_record.default_timezone
确定在从日期中提取日期和时间时是使用Time.local
(如果设置为:local
)还是Time.utc
(如果设置为:utc
)。数据库。默认值为:utc.
答案 1 :(得分:0)
根据加勒特·莫茨纳(Garrett Motzner)的评论,date
列中没有存储任何固有时区,而与之相关的时区是datetime
列。这意味着,如果用户具有不同的时区,那么如果使用date
列,则需要手动说明时区。另一种方法是使用datetime
列存储日期并对其进行处理,以解决仅存储日期这一事实。