ActiveRecord将日期映射到TimeWithZone而不是DateTime,后缀为.000000

时间:2016-05-21 11:22:14

标签: ruby datetime activerecord rails-activerecord activesupport

在标题中,程序映射DateTime到TimeWithZone本身。

create_table :db_values do |t|
    t.datetime :created_date
end

数据库记录: 2016-02-01T01:00:00 + 0000.000000

如何删除该后缀? ” 0.000000' 我用过:

Time::DATE_FORMATS[:db]= lambda { |time|  time.strftime("%Y-%m-%dT%H:%M:%S%z") }

1 个答案:

答案 0 :(得分:0)

Rails会将UTC时区中的所有时间/时间戳保存到您的数据库中。通过这种方式,当您在其他时区给出时间时,更容易确切地知道它应该在什么时间进行比较。因此,不要尝试将DB值更改为分区时间值。顺其自然......

在显示本地化时间时,只需使用辅助方法I18n.l Time.current

以下是关于good articles的几个timezones in Rails