在Ruby中,我试图将Date转换为HighCharts
JavaScript图表库可用的格式。奇怪的是,当我将Date转换为秒时,转换的时间与将Time
转换为秒时的转换方式不同,而将DateTime
转换为秒时的转换方式则不同。由于转换的这种差异,图表上显示的日期可能会落后1个日期。
我确信这与Rails有关,以及它如何处理从UTC到Local的转换。如果有人能向我解释细节,我会非常感激。
在我的下面的例子中,我使用相同的日期'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
答案 0 :(得分:2)
ruby-1.9.2-p180 :106 > Time.utc(2011, 5, 2)
=> 2011-05-02 00:00:00 UTC
ruby-1.9.2-p180 :107 > Date.new(2011, 5, 2).to_time
=> 2011-05-02 00:00:00 +0300
Date.to_time使用时区生成时间。那是你的不同之处。 立即突然出现在我脑海中的快速修复/黑客是:
Date.new(2011, 5, 2).to_time.utc.midnight
编辑: http://apidock.com/rails/Date/to_time
Date.new(2011, 5, 2).to_time(:utc)