将 UNIX 时代转换为 Date 对象

我正在根据均匀分布的时间序列进行绘图和计算。时间戳目前以整数形式存储,表示自 UNIX 时代以来的秒数(例如 1352068320) ,但是 Date对象似乎更适合绘图。我怎样才能进行转换?

我读过 ?Date?as.Date??epoch,但似乎没有注意到这些信息。

135396 次浏览

通过 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>

编辑: 几年后,我们现在可以使用 随时奉陪软件包:

R> library(anytime)
R> anytime(1352068320)
[1] "2012-11-04 16:32:00 CST"
R> anydate(1352068320)
[1] "2012-11-04"
R>

请注意,在没有 任何格式或原始参数的情况下,所有这些都是如何工作的。

library(lubridate)中,日期和时间的数字表示形式保存为从 世界协调时1970-01-0100:00:00 UTC,可以被强制使用 as_datetime()的日期:

lubridate::as_datetime(1352068320)


[1] "2012-11-04 22:32:00 UTC"