RubyonRails3:为什么从日期到秒的转换与从时间到秒的转换不同

RubyonRails3:为什么从日期到秒的转换与从时间到秒的转换不同,ruby,ruby-on-rails-3,Ruby,Ruby On Rails 3,在Ruby中,我试图将日期转换为HighChartsJavaScript图表库可以使用的格式。奇怪的是,当我将日期转换为秒时,它的转换不同于将时间转换为秒时,也不同于将日期时间转换为秒时。由于这种转换的差异,图表上显示的日期可能最多落后一个日期 我确信这与Rails以及它如何处理从UTC到本地的转换有关。如果有人能向我解释细节,我将不胜感激 在我下面的例子中,我使用了相同的日期“2011/05/02”,但秒数不同 示例: Date.new(2011, 5, 2).to_time.to_i * 1

在Ruby中,我试图将日期转换为
HighCharts
JavaScript图表库可以使用的格式。奇怪的是,当我将日期转换为秒时,它的转换不同于将
时间
转换为秒时,也不同于将
日期时间
转换为秒时。由于这种转换的差异,图表上显示的日期可能最多落后一个日期

我确信这与Rails以及它如何处理从UTC到本地的转换有关。如果有人能向我解释细节,我将不胜感激

在我下面的例子中,我使用了相同的日期“2011/05/02”,但秒数不同

示例:

Date.new(2011, 5, 2).to_time.to_i * 1000
=> 1304265600000
=> 05/01/2011

Time.utc(2011, 5, 2).to_i * 1000
=> 1304294400000
=> 05/02/2011

Date.new(2011, 5, 2).to_datetime.to_i * 1000
=> 1304294400000
=> 05/02/2011
Date.to_time生成带时区的时间。这就是你的区别。 我脑海中立即闪现的快速修复/破解方法是:

Date.new(2011, 5, 2).to_time.utc.midnight
编辑:

Date.new(2011, 5, 2).to_time.utc.midnight
Date.new(2011, 5, 2).to_time(:utc)