Предлагаемые варианты использования to_utc
или utc
для исправления смещения по местному времени не работают. Я обнаружил, что использование Time.utc()
работает правильно, и код включает в себя меньше шагов:
> Time.utc(2016, 12, 25).to_i
=> 1482624000 # correct
против
> Date.new(2016, 12, 25).to_time.utc.to_i
=> 1482584400 # incorrect
Вот что происходит, когда вы вызываете utc после использования Date
....
> Date.new(2016, 12, 25).to_time
=> 2016-12-25 00:00:00 +1100 # This will use your system's time offset
> Date.new(2016, 12, 25).to_time.utc
=> 2016-12-24 13:00:00 UTC
... так ясно, что вызов to_i
даст неправильную метку времени.