【问题标题】:How to get specific time in specific timezone in Rails如何在 Rails 中获取特定时区的特定时间
【发布时间】:2012-08-09 07:05:23
【问题描述】:

假设我需要获取柏林时区凌晨 3 点的 Time 对象。 我无法弄清楚这一点。

如果我这样做,

Time.parse("03:00am").in_time_zone('Berlin')

我将当前时区的凌晨 3 点转换为柏林时区。 但我需要柏林时区的凌晨 3 点。

【问题讨论】:

    标签: ruby-on-rails timezone


    【解决方案1】:

    尝试使用 Time.use_zone 临时设置时区

    > Time.use_zone("Berlin") do 
    >     t = Time.zone.parse("3:00am")
    > end
    => Thu, 09 Aug 2012 03:00:00 CEST +02:00
    

    【讨论】:

      【解决方案2】:

      我遇到了同样的问题,不想更改 Time.zone,因为它在多个请求中持续存在。

      诀窍(也是更安全的方法,因为它不会更改像 Time.zone 这样的任何系统设置)是将时间(AND 时区)放入 Time.parse 可用的格式。这是美国太平洋时间的示例 - 改为插入所需的 TZ 格式时区字符串:

      Time.parse("2012-10-1 8:00:00 太平洋时间(美国和加拿大)")

      【讨论】:

        【解决方案3】:

        试试这个,

        Time.zone = "Berlin"
        Time.zone.parse("03:00am")
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-03-01
          • 2021-09-22
          • 2015-03-25
          • 1970-01-01
          • 2012-01-02
          • 2016-08-23
          • 1970-01-01
          • 2020-06-27
          相关资源
          最近更新 更多