#r #time
#r #время
Вопрос:
У меня есть значения, полученные из большого двоичного объекта JSON и, вероятно, Excel до этого.
Для этого есть поле timestamp
, включающее такие значения
timestamp = [
1519383511397, 1536864135321,
1540584502333, 1535641486675,
1541126656968, 1544634450352,
1538790352678, 1538171618112,
1546300725869, 1542642909566
]
Я попытался преобразовать их с as.POSIXct(as.numeric(1519383511397), origin = "1970-01-01")
помощью . Это не сработало. Я попробовал несколько других вариантов, например, установить начальный год в 0-01-01
и 2000-01-01
.
Вы распознаете этот формат и есть ли лучший способ их анализа?
Комментарии:
1. В каком диапазоне вы ожидаете, что значения будут находиться?
Ответ №1:
Это выглядит как временная метка Unix EPOCH13, которая исчисляется в миллисекундах, деление на 1000 дало следующее предположение о времени unix:
timestamp <- c(
1519383511397, 1536864135321,
1540584502333, 1535641486675,
1541126656968, 1544634450352,
1538790352678, 1538171618112,
1546300725869, 1542642909566
)
as.POSIXct(timestamp/1000,origin="1970-01-01")
[1] "2018-02-23 11:58:31 CET" "2018-09-13 20:42:15 CEST" "2018-10-26 22:08:22 CEST" "2018-08-30 17:04:46 CEST" "2018-11-02 03:44:16 CET"
[6] "2018-12-12 18:07:30 CET" "2018-10-06 03:45:52 CEST" "2018-09-28 23:53:38 CEST" "2019-01-01 00:58:45 CET" "2018-11-19 16:55:09 CET"
Комментарии:
1. Я думаю, что результат отличается от ожидаемого результата в сообщении OP. Сначала я думал о делении на 1000
Ответ №2:
Я предполагаю, что это время javascript, которое анализируется в миллисекундах, которое можно легко преобразовать.
timestamp = c(
1519383511397, 1536864135321,
1540584502333, 1535641486675,
1541126656968, 1544634450352,
1538790352678, 1538171618112,
1546300725869, 1542642909566
)
conv_ms <- as.Date(timestamp / (24 * 60 * 60 * 1000), origin = as.Date("1970-01-01"))
R> conv_ms
[1] "2018-02-23" "2018-09-13" "2018-10-26" "2018-08-30" "2018-11-02" "2018-12-12" "2018-10-06" "2018-09-28"
[9] "2018-12-31" "2018-11-19"