R:Posix(Unix)时间疯狂转换

时间:2015-07-23 19:42:02

标签: r posix posixct posixlt

Unix时间是1435617000。

delete

哪个错了。我试图(a)获得正确的日期,每个时期转换器为as.Date(1435617000,origin="01-01-1970") [1] "3930586-11-23"

如何让R告诉我月,日,年,小时,分钟和第二?谢谢。

1 个答案:

答案 0 :(得分:3)

我认为发生这种情况的原因是因为as.Date将参数转换为类日期对象。在这种情况下,您不需要日期而是类POSIXct对象,因为您的输入x向量包含as.Date无法管理的其他信息。即使使用正确的功能也会出现的另一个问题是,如果您没有使用tz参数指定正确的时区(除非您的时区与原始时间相同)。

以下代码完成了这项工作。

x <- 1435617000
as.POSIXct(x, origin = "1970-01-01", tz ="GMT")
[1] "2015-06-29 22:30:00 GMT"

使用as.Date

如果您只想要日期,但是您有完整的Unix时间,例如x,则必须除以86400(这是一天中的秒数!)到得到合适的约会。

 as.Date(x/86400L, origin = "1970-01-01")
[1] "2015-06-29"

另一个重要细节

origin参数必须与YYYY-MM-DD一起提供,而不是像DD-MM-YYYY那样{我不确定,但我认为前者是唯一被接受和正确的方式。