亚秒日期时间到数字

时间:2019-09-09 13:45:38

标签: r posixct

POSIXct秒(即小数秒)转换为数字的最简单方法是什么?

考虑:

options(digits.secs = 3)
z <- 1579598122120
dttm <- as.POSIXct((z + 0.1)/1000, origin = "1970-01-01") # avoid rounding down: milliseconds are not exactly representable
print(dttm)
#[1] "2020-01-21 10:15:22.120 CET"

如何从dttm恢复z

我本来希望以下内容会给我自该时期以来的小数秒:

as.numeric(dttm)
[1] 1579598122

搜索网络并阅读文档似乎只能为我提供反问题的解决方案。目前,我最好的解决方案很尴尬,它涉及对与以上内容一起粘贴的format(dttm, "%OS3")进行字符串操作。

我似乎无法用str(dttm)unclass(dttm)分解对象并从那里恢复值。同样,as.double(dttm)不起作用。

1 个答案:

答案 0 :(得分:0)

如评论中所述,这只是数字的印刷问题:

print(as.numeric(dttm), digits = 14)
#[1] 1579598122.1201

我有失误。