我正在尝试使用以下代码行将当前时间和日期保存在mysql数据库中:
DateTime.now
但是当我将其保存在数据库中然后进行查看时,我得到了:
2018-12-06 00:18:46
我认为时间不对,这会影响日期。 我该怎么解决?
答案 0 :(得分:1)
默认情况下,Rails总是在将时间写入数据库或从数据库读取之前将时间转换为UTC,这没有任何问题。
您可以在应用程序初始化时更改此行为,例如,在/config/application/rb
中:
config.time_zone = 'Atlantic Time (Canada)'
config.active_record.default_timezone = :local
如果您正在寻找一种存储记录创建/上次更新日期的方法,则可以使用时间戳记,它将自动存储您在时间和日期上更新/创建的记录。
在您的迁移文件中:
class CreateThings < ActiveRecord::Migration[5.0]
def change
create_table :things do |t|
t.string :name
t.text :description
t.timestamps
end
end
end
否则,获取正确的本地时间的正确方法是
Time.zone.now
您可以使用
获取受支持的时区的完整列表。ActiveSupport::TimeZone.zones_map(&:name)
Timezone docs,a quick rundown中Ruby on Rails中的日期,时间和时区。