假设我需要获取柏林时区凌晨 3 点的时间对象。我无法弄清楚这一点。
如果我做,
Time.parse("03:00am").in_time_zone('Berlin')
我将当前时区的凌晨 3 点转换为柏林时区。但我需要柏林时区的凌晨 3 点。
假设我需要获取柏林时区凌晨 3 点的时间对象。我无法弄清楚这一点。
如果我做,
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")