Rails 2.3.5解析日期不一致



首先,由于Redmine,我使用的是旧版本的rails。

我试图写一个脚本更新Redmine的数据库转储时间戳'到一个特定的时区,因此我需要ruby来解析它们并更改时区,假设rails可以处理dst边界。

然而,我发现了时间的不一致(或误解)。解析工作。

以下是我在Rails 2.3.5原始应用程序上执行的脚本:
impulse@ImpulseServer:~/pgtz_converter$ script/console
Loading development environment (Rails 2.3.5)
>> Time.zone
=> #<ActiveSupport::TimeZone:0x7fa94a57b9a8 @tzinfo=nil, @name="UTC", @utc_offset=0>
>> Time.parse('2011-02-19 23:00:00')
=> Sat Feb 19 23:00:00 -0200 2011
>> Time.zone
=> #<ActiveSupport::TimeZone:0x7fa94a57b9a8 @tzinfo=nil, @name="UTC", @utc_offset=0>
>> Time.parse('2011-02-20 00:00:00')
=> Sun Feb 20 00:00:00 -0300 2011
>> Time.zone
=> #<ActiveSupport::TimeZone:0x7fa94a57b9a8 @tzinfo=nil, @name="UTC", @utc_offset=0>
>> Time.parse('2011-02-19 23:00:00')
=> Sat Feb 19 23:00:00 -0300 2011
>> Time.zone
=> #<ActiveSupport::TimeZone:0x7fa94a57b9a8 @tzinfo=nil, @name="UTC", @utc_offset=0>
>> exit

上面的内容如下:

服务器本地日期时区为BRT。

impulse@ImpulseServer:~/pgtz_converter$ date
Fri Apr  8 19:17:34 BRT 2011

首先我检查时间。区域(即UTC),然后尝试解析DST日期。输出很好,DST是在(我假定时间。zone = UTC表示Ruby检查服务器区域配置并使用它)。然后我尝试另一个日期,其中夏时制不再活跃(夏时制结束于2011年2月20日00:00)。此日期已正确解析(GMT-3)。

现在问题开始了。

我尝试再次解析旧的DST日期,结果是错误的!它没有被读成夏时制日期!

我想可能是解析改变了时间。区域,但在粘贴时一直是UTC。

是什么引起的?

感谢您的阅读。

尼洛

您可能希望在rails中使用activessupport::TimeWithZone类。

相关内容

  • 没有找到相关文章

最新更新