假设我需要在柏林时区获取凌晨 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 zone)转换为Time.parse可用的格式。下面是美国太平洋时间的示例 - 请改为插入所需的 TZ 格式时区字符串:
Time.parse("2012-10-1 8:00:00 Pacific Time (US & Canada)")
试试这个,
Time.zone = "Berlin"
Time.zone.parse("03:00am")