R - 将时间戳(int)转换为时间间隔

时间:2016-08-12 12:06:18

标签: r datetime timedelta

我有一些整数(时间戳),我想将它们转换为时间间隔(时间增量)。我怎么能在R?中做到这一点?

这样的事情:

strptime(37998530.34, format="%d %H:%M")

此R代码返回错误:

difftime(37998530.34, 0)

在Python中我可以使用这段代码:

datetime.timedelta(0, 37998530.34)

结果是:

datetime.timedelta(439, 68930, 340000)
439 days, 19:08:50.340000

谢谢!

1 个答案:

答案 0 :(得分:1)

在R中,您需要指定日期转换的来源。假设您的值是使用此函数的秒数:

as.POSIXlt(37998530.34, origin="1970-01-01")
#[1] "1971-03-16 14:08:50 EST"

as.POSIXlt函数还有一个选项来指定所需的时区(tz =)

以下代码:

difftime(as.POSIXlt(37998530.34, origin="1970-01-01"), as.POSIXlt(0, origin="1970-01-01"), units=c('days'))

结果如下:

Time difference of 439.8 days