【问题标题】:Can not store time in database无法在数据库中存储时间
【发布时间】:2016-10-16 12:59:35
【问题描述】:

我在 Rails 应用程序中使用了 Time.new 方法来获取当前日期,我想将此日期存储到 datetime 类型的变量中。我正在使用postgresql。现在,如果我使用 pgAdminIII 手动将这种格式的日期插入到表中,它工作正常,但如果我尝试通过控制器代码将时间插入到表中,那么它会将不同的日期时间存储到表中。

例如假设当前时间是:-

2016-06-15 17:29:29

如果我通过从网页复制这一行手动将此日期和时间插入表中,那么它工作正常。

但我将其存储到表中的控制器代码正在插入其他内容,例如

2016-06-15 11:41:39

注意:我只使用了Time.new(我的代码中没有指定时间区域)

【问题讨论】:

  • Rails 将转换为 UTC 的日期时间存储在数据库中。所以我在这里没有看到问题。
  • 分享一些代码和你希望看到的最终结果。
  • 请在 application.rb config.time_zone = 'your timezone' 中检查您的时区。当您在其中指定时区时,时间值存储在数据库中。
  • 但在网页上显示时我也需要将其转换为UTC。它以 IST 格式在网页中显示时间,但我需要 UTC

标签: ruby-on-rails ruby postgresql time insert


【解决方案1】:

只是活动记录使用 utc 作为时区。 如果您希望 Active Record 将您的时间存储在首选时区,请在此处更改

# application.rb
config.time_zone = 'Eastern Time (US & Canada)' //insert your time zone here
config.active_record.default_timezone = :local

参考:How to change default timezone for Active Record in Rails?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-04
    • 2012-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-15
    • 2021-09-27
    • 2014-06-01
    相关资源
    最近更新 更多