Разбираем тики на дату и время - PullRequest
4 голосов
/ 18 февраля 2011

Как я могу преобразовать тик, такой как 1298011537289, в DateTime в Ruby?

Значение, которое мне нужно преобразовать, исходит из вызова JavaScript Date.now(), поэтому в миллисекундах

Ответы [ 3 ]

10 голосов
/ 18 февраля 2011

За Документы Ruby :

myTime = Time.at(1298011537289)

или поскольку вы используете миллисекунды, а не секунды:

myTime = Time.at(1298011537289 / 1000)

Но это удалит тольковторая точность, чтобы сохранить ее:

myTime = Time.at(Rational(1298011537289, 1000))
5 голосов
/ 12 ноября 2012

Используйте strptime и анализируйте его в формате %Q - Number of microseconds since 1970-01-01 00:00:00 UTC.

Пример: DateTime.strptime "1352748750274", "%Q"

2 голосов
/ 18 февраля 2011

Предполагая, что значение указано в миллисекундах, я бы так и сделал:

require 'date'
DateTime.parse(Time.at(1298011537289 / 1000).to_s) # => #<DateTime: 2011-02-17T23:45:37-07:00 (212164771537/86400,-7/24,2299161)>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...