兩組數據的紅寶石時區的處理需要進行合併,以創建一個新的DateTime對象合併數據時
def mergeDateTime(date_to_merge, time_to_merge)
DateTime.new(date_to_merge.year, date_to_merge.month,date_to_merge.day, time_to_merge.hour, time_to_merge.min, time_to_merge.sec)
end
查詢@signature = Signature.where('playtime_id = ?', 514).first
回報
Signature id: 834,[...], created_at: "2017-06-27 05:16:52"
和查詢@interruption = Interruption.where('playtime_id = ?', 514).first
回報
Interruption id: 190, [...], pause: "2017-06-27 06:46:19"
bu牛逼運行
mergeDateTime(@signature.created_at, @interruption.pause)
回報
Tue, 27 Jun 2017 08:46:19 +0000
這是不對的,因爲它解釋了數據在北京時間而且應該產生
Tue, 27 Jun 2017 06:46:19 +0000
如何調整時區的這一假設進行結紮?根據date_to_merge日期,和是否考慮了時區的偏移量?
這是返回完全相同的結果'2017年6月27日星期二08:46:19 UTC +00:00' – Jerome
關閉。功能性答案是調用要處理的對象的時區:'mergeDateTime(@ signature.created_at,@interrupt.pause.in_time_zone('UTC'))' – Jerome
已更新答案以反映@Jerome – anothermh