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

3
假设我需要获取柏林时区早上3点的时间对象。 我无法弄清楚如何做到这一点。
如果我这样做,
Time.parse("03:00am").in_time_zone('Berlin')

我需要将当前时区的3am转换为柏林时区。但我需要柏林时区的3am。
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

1

我曾经遇到过同样的问题,但不想改变 Time.zone 设置,因为它会在多个请求中持续存在。

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

Time.parse("2012-10-1 8:00:00 Pacific Time (US & Canada)")


0

试试这个,

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接