3

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

如果我做,

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

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

4

3 回答 3

8

尝试使用 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
于 2012-08-09T07:36:38.627 回答
1

我遇到了同样的问题并且不想更改 Time.zone 因为它在多个请求中仍然存在。

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

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

于 2012-11-05T07:29:23.483 回答
0

尝试这个,

Time.zone = "Berlin"
Time.zone.parse("03:00am")
于 2012-08-09T08:17:17.707 回答