小编mic*_*dwp的帖子

夏令时在Rails 2.3.5中无法正确计算?

我的应用程序中的夏令时(DST)有一个非常奇怪的问题.出于某种原因,每当我从表中收到时间时,它都不会为DST调整自己.例如,如果我在控制台中创建一个新的Time,在适当的时区,将其写入数据库,然后尝试从数据库中检索它,它会在一小时前返回.

这是一个例子:

在这里,我们可以看到使用控制台,在美国东部时间15:00创建一个新的时间等于19:00 UTC(因为调整为DST,这使得-0400而不是通常的-0500):

ruby-1.8.6-p114 > Time.zone
 => #<ActiveSupport::TimeZone:0x12b1b68 @name="UTC", @tzinfo=nil, @utc_offset=0> 
ruby-1.8.6-p114 > Time.zone = "Eastern Time (US & Canada)"
 => "Eastern Time (US & Canada)" 
ruby-1.8.6-p114 > Time.zone.parse("15:00")
 => Thu, 09 Sep 2010 15:00:00 EDT -04:00 
ruby-1.8.6-p114 > Time.zone.parse("15:00").utc
 => Thu Sep 09 19:00:00 UTC 2010 
ruby-1.8.6-p114 > Time.zone.parse("15:00").dst?
 => true 
Run Code Online (Sandbox Code Playgroud)

现在,我尝试将同一时间写入数据库,并将其检索回来:

ruby-1.8.6-p114 > b = Book.new
 => #<Book id: nil, return_time: nil, created_at: nil, updated_at: nil> 
ruby-1.8.6-p114 > b.return_time = Time.zone.parse("15:00")
 => Thu, 09 Sep 2010 15:00:00 …
Run Code Online (Sandbox Code Playgroud)

time timezone ruby-on-rails dst

2
推荐指数
1
解决办法
2057
查看次数

标签 统计

dst ×1

ruby-on-rails ×1

time ×1

timezone ×1