【发布时间】:2014-05-21 10:23:29
【问题描述】:
我的任务是将多个数据导入到 rails 应用程序。旧数据库中的所有数据都以该日期的实际德国时间的时间戳存储。我想现在保存为 UTC。
例如,在德国数据库中,日期存储为:
- 2013-06-01 10:44:00
- 2013-11-01 10:44:00
在 UTC 中是正确的,并且应该在我的 Rails 数据库中为:
- 2013-06-01 08:44:00
- 2013-11-01 09:44:00
因为 6 月 1 日是德国的 CEST,即 UTC+2,所以 11 月 1 日是德国的 CET,即 UTC+1。
不是我的问题:我知道如何告诉 Ruby 时区,但是夏令时呢?
Time.parse ’#{timestamp} CEST’
会导致
Time.parse '2013-06-01 10:44:00 CEST'
在我的数据库中正确并正确地将时间保存为 08:44 UTCTime.parse '2013-11-01 10:44:00 CEST'
也会将此保存为 08:44 UTC - 这是错误的,应该是 09:44 ...
这是可以理解的,因为我告诉 Ruby,11 月 1 日的日期是 CEST,这当然是错误的,它的 CET。 (使用 Time.parse '... CET' 也会导致错误)。
如何告诉 Ruby 根据夏令时自动确定使用哪个时区?
类似 Time.parse '#{timestamp} GERMANY' 的可能吗?
否则我需要检查 -> 如果在 3 月 30 日至 10 月 26 日之间使用 CEST,否则使用 CET - 这对我来说似乎很复杂......
非常感谢任何帮助。
【问题讨论】:
标签: ruby-on-rails ruby