如何在R中转换unix时间戳(毫秒)和时区?

sfa*_*tor 4 datetime r unix-timestamp timestamp-with-timezone

我有包含两列timetimezone具有事件时间戳的数据。例子是:

time               timezone
1433848856453      10800000
Run Code Online (Sandbox Code Playgroud)

似乎时间戳在信息中也有小数秒。我不明白时区格式,但它必须是等效的 unix 格式。我也需要保留小数秒。我如何从那个变成类似 R 的东西?

2015-01-01 13:34:56.45 UTC
Run Code Online (Sandbox Code Playgroud)

注意:这个人类可读的日期不是显示的 unix 时间戳的实际转换值。

Jos*_*ich 5

看起来该timezone列是时区偏移量,以毫秒为单位。我认为这意味着时区列将手动调整夏令时

所以,你应该添加timetimezone转换为前列POSIXct。您还应该将 设置为tz"UTC"以便不会对您的POSIXct对象进行 DST 调整。

R> time <- 1433848856453
R> timezone <- 10800000
R> options(digits.secs=3)
R> .POSIXct((time+timezone)/1000, tz="UTC")
[1] "2015-06-09 14:20:56.453 UTC"
Run Code Online (Sandbox Code Playgroud)