Редактировать: этот ответ Миллисекунды в классе POSIXct указывают на то, что происходит с POSIXct
(Обратите внимание, что вы получаете ошибки округления и Rформатирование даты и времени всегда округляется вниз, поэтому, если вы показываете меньше десятичных знаков, иногда кажется, что вы потеряли миллисекунду.)
Кажется, проблема существует с ymd_hms
, а также as.POSIXct
.
Если я позвоню strptime
напрямую или использую as.POSIXlt
, миллисекунды будут правильно анализироваться:
strptime(time, "%Y-%m-%d %H:%M:%OS", tz = "Europe/Helsinki")
as.POSIXlt(time, "%Y-%m-%d %H:%M:%OS", tz = "Europe/Helsinki")
Любой из этих вариантов должен решить вашу проблему.
"2019-01-14 10:58:23.438 EET"
POSIXlt
и POSIXct
ведут себя по-разному, однако:
as.POSIXlt(time, "%Y-%m-%d %H:%M:%OS", tz = "Europe/Helsinki") %>%
format(., "%Y-%m-%d %H:%M:%OS6")
[1] "2019-01-14 10:58:23.438000"
as.POSIXct(time, "%Y-%m-%d %H:%M:%OS", tz = "Europe/Helsinki") %>%
format(., "%Y-%m-%d %H:%M:%OS6")
[1] "2019-01-14 10:58:23.437999"