数据库中的日期列是否存在固有时区

时间:2018-07-10 22:42:55

标签: ruby-on-rails

我在轨道上使用红宝石。当您保存类型为datetime的列时,将为日期和时间存储一个固有时区。如何存储类型为date的列,尤其是该日期是否与任何时区相关?

2 个答案:

答案 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列存储日期并对其进行处理,以解决仅存储日期这一事实。