[英]Rails dates in rails console
我的应用程序创建事件并将事件保存到mysql数据库中。 我用这样的东西
event = Event.new .... start_date: Time.now ...
我是法国人,我的当地时间是格林尼治标准时间+ 200,并且Time.now使用本地时间机器。 但是在Rails控制台中我遇到了一个问题,例如,如果我在2016-09-12 18:30:00创建一个事件,当我运行时
Event.all
在Rails控制台中,我看到:
#... <Event id: 5 ... start_date: 2016-09-12 16:30:00 ...
我有2小时的延迟,但是当我这样做时
e = Event.find 5
e.start_date
我有结果
Mon, 12 Sep 2016 18:30:00 CEST +02:00
美好的时光。 我看到mysql日志,并且我的请求插入了正确的日期:
INSERT INTO `events` ... 2016-09-12 18:30:00'
我认为我的应用程序完美运行,我只想了解这一点。 谢谢
编辑我的config / application.rb的 #1内容
config.active_record.default_timezone = :local
config.time_zone = 'Paris'
Rails始终将默认时间设置为UTC,因此它将数据库中的所有记录保存到该默认时区。 但是您已经将application.rb更改为Paris,以便控制台显示正确的时间。 但是对于数据库来说,它并没有改变任何事情。
您可以使用:
event = Event.new .... start_date: Time.now.in_time_zone ...
这样,Rails会在添加到数据库时跳过默认的time_zone来使用application.rb中的time_zone。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.