Преобразование эпохи UNIX в объект Date
Я рисую и выполняю вычисления на равномерно распределенных временных рядах. Временные метки в настоящее время хранятся в виде целых чисел, представляющих количество секунд с момента UNIX (например, 1352068320
), но Date
объекты кажутся более подходящими для построения графика. Как я могу сделать преобразование?
Я читал ?Date
, ?as.Date
и ??epoch
, но, похоже, пропустил эту информацию.
Ответы
Ответ 1
Перейдите через POSIXct
, и вы хотите установить там TZ
- здесь вы видите мой (Чикаго) по умолчанию:
R> val <- 1352068320
R> as.POSIXct(val, origin="1970-01-01")
[1] "2012-11-04 22:32:00 CST"
R> as.Date(as.POSIXct(val, origin="1970-01-01"))
[1] "2012-11-05"
R>
Изменить: через несколько лет мы теперь можем использовать пакет anytime:
R> library(anytime)
R> anytime(1352068320)
[1] "2012-11-04 16:32:00 CST"
R> anydate(1352068320)
[1] "2012-11-04"
R>
Обратите внимание, как все это работает без аргументов формата или источника.
Ответ 2
В смазанной библиотеке дата и время сохраняются как количество секунд с 1970-01-01 00:00:00 UTC. Так что вы можете сделать
library(lubridate)
as_datetime(1352068320)
[1] "2012-11-04 22:32:00 UTC"