我有一个包含值的变量 "时间间隔的开始,表示为从1970年1月1日在UTC的Unix纪元开始经过的毫秒数。" (根据数据源元数据)
这是头脑:
X $ timeInt [1] 1.388068e + 12 1.388075e + 12 1.388096e + 12 1.388051e + 12 1.388051e + 12 1.388072e + 12
所以我尝试将其转换为POSIXct
as.POSIXct(x$timeInt, origin = '01-01-1970',tz='UTC')
但我得到了这个结果
[1] "43987-03-01 05:20:00 UTC" "43987-05-23 13:20:00 UTC" "43988-01-28 13:20:00 UTC" "43986-08-25 17:20:00 UTC"
[5] "43986-08-25 17:20:00 UTC" "43987-04-25 18:40:00 UTC"
如你所见,这一年是完全错误的。我尝试使用其他格式,例如" 1970-01-01",但结果是一样的。 我知道数据是在2013年12月拍摄的。
答案 0 :(得分:3)
你必须小心,这是以毫秒为单位,所以:
x$timeInt <- x$timeInt/1000
然后是两种方法中的一种:
as.POSIXct(x$timeInt, origin = '1970-01-01',tz='UTC')
或
library(anytime)
anytime(x$timeInt)
#[1] "2013-12-26 15:26:40 CET" "2013-12-26 17:23:20 CET" "2013-12-26 23:13:20 CET" "2013-12-26 10:43:20 CET" "2013-12-26 10:43:20 CET"
#[6] "2013-12-26 16:33:20 CET"