如何在 Rails 中获取特定时区的特定时间



假设我需要在柏林时区获取凌晨 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")

相关内容

  • 没有找到相关文章