Как получить метку времени UNIX (количество секунд с 1970 по Гринвичу) из объекта Date в приложении Rails?
Я знаю, что Time#to_i
возвращает временную метку, но выполнение, Date#to_time
а затем получение временной метки приводит к чему-то, что отключается примерно на месяц (не знаю почему ...).
Любая помощь приветствуется, спасибо!
Изменить: ОК, я думаю, что я понял это - я обрабатывал дату несколько раз в цикле, и каждый раз, когда дата перемещалась немного из-за несоответствия часового пояса, в конечном счете, моя метка времени была месяцем не работать. Тем не менее, мне было бы интересно узнать, есть ли способ сделать это, не полагаясь на Date#to_time
.
источник
to_utc
date.to_time.utc
вероятно, он имел в виду.Когда я пытаюсь это сделать, я получаю следующее:
Разница между этими двумя числами связана с тем, что
Date
не хранятся часы, минуты или секунды текущего времени. ПреобразованиеDate
вTime
приведет к тому, что в этот день, полночь.источник
Предложенные варианты использования
to_utc
илиutc
для исправления смещения местного времени не работают. Для меня я обнаружил, что использованиеTime.utc()
работает правильно, и код включает в себя меньше шагов:против
Вот что происходит, когда вы вызываете utc после использования
Date
....... так ясно, что вызов
to_i
будет давать неправильную метку времени.источник
Решение для Ruby 1.8, когда у вас есть произвольный объект DateTime:
источник
источник