繁体   English   中英

Rails控制台中的Rails日期

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM