【发布时间】:2012-08-09 07:05:23
【问题描述】:
假设我需要获取柏林时区凌晨 3 点的 Time 对象。 我无法弄清楚这一点。
如果我这样做,
Time.parse("03:00am").in_time_zone('Berlin')
我将当前时区的凌晨 3 点转换为柏林时区。 但我需要柏林时区的凌晨 3 点。
【问题讨论】:
假设我需要获取柏林时区凌晨 3 点的 Time 对象。 我无法弄清楚这一点。
如果我这样做,
Time.parse("03:00am").in_time_zone('Berlin')
我将当前时区的凌晨 3 点转换为柏林时区。 但我需要柏林时区的凌晨 3 点。
【问题讨论】:
尝试使用 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
【讨论】:
我遇到了同样的问题,不想更改 Time.zone,因为它在多个请求中持续存在。
诀窍(也是更安全的方法,因为它不会更改像 Time.zone 这样的任何系统设置)是将时间(AND 时区)放入 Time.parse 可用的格式。这是美国太平洋时间的示例 - 改为插入所需的 TZ 格式时区字符串:
Time.parse("2012-10-1 8:00:00 太平洋时间(美国和加拿大)")
【讨论】:
试试这个,
Time.zone = "Berlin"
Time.zone.parse("03:00am")
【讨论】: