【问题标题】:Changing ActiveRecord timezone for a session更改会话的 ActiveRecord 时区
【发布时间】:2013-04-09 20:09:55
【问题描述】:

我一直在尝试使用 Time.zone 方法更改用户会话的时区。我在执行 Time.zone.now 时得到正确的日期和时间,但是当我使用 ActiveRecord::Base.connection.select_all 执行选择查询时,结果中的日期时间列始终采用 UTC。我需要做什么才能使所有选择查询返回使用 Time.zone 方法设置的时区中的数据,而不更改视图?请帮忙。

【问题讨论】:

    标签: ruby-on-rails activerecord timezone


    【解决方案1】:

    使用 ruby​​ 将时间转换为本地时区是最简单的。

    Time.now.in_time_zone()
    

    就这样使用它。

    Time.now.in_time_zone('Alaska') # => Fri, 31 Dec 1999 15:00:00 AKST -09:00
    

    你可以给函数一个时区字符串,或者一个 UTC 偏移量

    http://apidock.com/rails/Time/in_time_zone

    【讨论】:

    • 我知道我可以这样做,但我正在寻找一种方法来将时区偏移直接应用于查询结果,这样我就不必更改所有视图。这可能吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-26
    • 2011-07-11
    • 1970-01-01
    • 2016-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多