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

时间:2012-08-09 07:05:23

标签: ruby-on-rails timezone

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

如果我这样做,

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

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

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

试试这个,

Time.zone = "Berlin"
Time.zone.parse("03:00am")

答案 2 :(得分:0)

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

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

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