将时间戳(以微秒为单位)转换为r中的数据和时间

时间:2018-04-11 13:48:00

标签: r timestamp unix-timestamp date-conversion

我试图将时间戳(以微秒为单位)转换为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"

有任何解决这个问题的建议吗?

1 个答案:

答案 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> 

使缩放差异更明显。