我的任务是将多个数据导入到rails应用程序中。旧数据库中的所有数据都在此日期以德国实际时间的时间戳存储。我现在想在世界协调时存钱。
例如,在数据库中,德国日期存储为:
在UTC中是正确的,并且应该在我的Rails数据库中,如:
因为6月1日德国的CEST是UTC+2,11月1日是UTC+1。
没有我的问题:我知道如何告诉Ruby时区,但是夏令时呢?
Time.parse ’#{timestamp} CEST’ 会导致
这是可以理解的,因为我告诉Ruby,11月1日的日期是在CEST,当然是假的,它的CET。(用Time.parse‘.CET‘也会导致相反的错误)。
如何告诉根据夏令时间自动确定使用哪个时区?
类似于Time.parse‘{时间戳}德国’可能吗?
否则,我需要检查->,如果3月30日至10月26日之间使用CEST,否则的CET -这似乎是复杂的我.
任何帮助都是徒劳无功的。
发布于 2014-05-21 10:34:53
一个区域是否有DST是在时区中编码的。
确保设置了Time.zone,然后使用Rails的Time.zone.parse解析它。下面是一个您可以在Rails控制台中尝试的示例:
> Time.zone = 'Berlin'
=> "Berlin"
> Time.zone.parse('2014-05-21 08:09:10')
=> Wed, 21 May 2014 08:09:10 CEST +02:00
> Time.zone.parse('2014-11-21 08:09:10')
=> Fri, 21 Nov 2014 08:09:10 CET +01:00您可以看到同一时间被解析为不同的偏移量,这取决于它是否在DST内。
https://stackoverflow.com/questions/23780437
复制相似问题