Конвертировать UNIX строку времени в дату в R - PullRequest
0 голосов
/ 20 февраля 2020

У меня есть следующая UNIX строка времени:

"1575824800.169"

Если вы конвертируете это время, вы получите: 08/12/2019 17:06 в режиме онлайн unix конвертер.

Однако при попытке преобразовать это в R, используя следующий код:

as.POSIXct("1575824800.169", format='%d/%m/%Y %H:%M', origin = "1970-01-01")

Мне возвращается значение NA

Я пытаясь понять, почему вышеприведенный код не работает - я рассмотрел различные ответы здесь, но не нашел такого, где строка времени unix имеет 3 цифры после точки (точка) в строке. Может в этом проблема?

Ответы [ 2 ]

3 голосов
/ 20 февраля 2020

У вас нет строки , кодирующей дату (как подразумевается при использовании аргумента format as.POSIXct), но число . Если мы заново приведем строку как число c и избавимся от аргумента формата, мы получим ожидаемый результат (хотя нам может потребоваться использовать аргумент tz для указания часового пояса)

as.POSIXct(1575824800.169, origin = "1970-01-01")

Возвращает:

[1] "2019-12-08 18:06:40 CET"

Редактировать:

Добавление аргумента часового пояса

as.POSIXct(1575824800.169, origin = "1970-01-01", tz = "UCT")

Возвращает:

[1] "2019-12-08 17:06:40 UTC"

Редактировать 2:

Относительно преобразования строки в число c с as.numeric: как указывало @IceCreamToucan, это не имеет значения. Изменяется только «напечатанное» значение, внутреннее представление остается тем же, и, следовательно, результат остается правильным

as.POSIXct(as.numeric("1575824800.169"), origin = "1970-01-01", tz = "UCT")

Возвращает то же самое:

[1] "2019-12-08 17:06:40 UTC"
0 голосов
/ 20 февраля 2020

Пакет anytime призван помочь здесь с некоторыми встроенными эвристиками. Таким образом, цифра c данные в этом диапазоне автоматически считаются (дробными) секундами с начала эпохи:

R> anytime::anytime(1575824800.169)
[1] "2019-12-08 11:06:40.168 CST"
R> 

Существует также оболочка для UT C и некоторых других параметров. если они вам нужны:

R> anytime::utctime(1575824800.169)
[1] "2019-12-08 17:06:40.168 UTC"
R> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...