我正在对均匀分布的时间序列进行绘图和执行计算。时间戳当前存储为整数,表示自UNIX纪元以来的秒数(例如1352068320
),但Date
对象似乎更适合绘图。我该如何进行转换?
我看过?Date
,?as.Date
和??epoch
,但似乎错过了这些信息。
答案 0 :(得分:193)
通过POSIXct
,你想在那里设置一个TZ
- 在这里你可以看到我的(芝加哥)默认值:
R> val <- 1352068320
R> as.POSIXct(val, origin="1970-01-01")
[1] "2012-11-04 22:32:00 CST"
R> as.Date(as.POSIXct(val, origin="1970-01-01"))
[1] "2012-11-05"
R>
编辑:几年后,我们现在可以使用anytime包:
R> library(anytime)
R> anytime(1352068320)
[1] "2012-11-04 16:32:00 CST"
R> anydate(1352068320)
[1] "2012-11-04"
R>
注意如果没有任何格式或原点参数,所有这些都可以。
答案 1 :(得分:2)
在lubridate库中保存的日期和时间为自 1970-01-01 00:00:00 UTC。所以你可以做
library(lubridate)
as_datetime(1352068320)
[1] "2012-11-04 22:32:00 UTC"