我试图将时间戳(以微秒为单位)转换为R中的以下格式:
YYYY-MM-DD HH:MM:SS
我尝试过不同的方法,但无法取得成功。按照我的代码:
406 error
我将此作为回报:
options(digits=16)
value = 1521222492687300
as.POSIXct(value, tz = "UTC", origin="1970-01-01 00:00:00")
即使除以1000,正如一些帖子所暗示的那样,我仍然得到一个无意义的结果:
[1] "48207591-10-13 12:15:00 UTC"
有任何解决这个问题的建议吗?
答案 0 :(得分:2)
正如Gabor暗示你需要除以1e6,而不是1e3:
R> v <- 1521222492687300
R> v
[1] 1.52122e+15
R> anytime::anytime(v / 1e6)
[1] "2018-03-16 12:48:12.6872 CDT"
R>
当然与as.POSIXct
等相同,但你需要提供冗余来源:
R> as.POSIXct(v / 1e6, origin="1970-01-01")
[1] "2018-03-16 12:48:12.6872 CDT"
R>
查看比例的一种方法是转换当前时间:
R> w <- as.numeric(Sys.time())
R> c(v, w)
[1] 1.52122e+15 1.52346e+09
R>
使缩放差异更明显。