找出R之间的时差

时间:2015-12-01 16:05:47

标签: r time difference

帮助我找出时间之间的差异。例如:这些是日期和时间

2015-11-24 16:49:14
2014-12-02 16:52:43

使用r。

需要HH:MM:SS格式的结果

2 个答案:

答案 0 :(得分:0)

由于您只需要时间之间的差异,忽略日期,您可以先使用strptime提取时间

x <- strptime(substr(a, 12, 19), format="%H:%M:%S")
y <- strptime(substr(b, 12, 19), format="%H:%M:%S")

然后使用seconds_to_period包的lubridate函数,您可以获得时差,然后使用sprintf格式化输出

library(lubridate)
temp <- seconds_to_period(as.numeric(difftime(y, x, units = "secs")))
sprintf('%02d:%02d:%02d', hour(temp), minute(temp), second(temp)) 

# [1] "00:03:29"     

数据

a <- as.POSIXct("2015-11-24 16:49:14") 
b <- as.POSIXct("2014-12-02 16:52:43")

答案 1 :(得分:0)

以下代码获取差异

library(lubridate)
interval(ymd_hms("2015-11-2416:17:38"),ymd_hms("2015-11-24 14:19:44"))
span<-interval(as.POSIXct("2015-11-24 16:17:38"),
as.POSIXct("2015-11-24 14:19:44")) 
as.period(span)

答案格式

> -1H -57M -54S

同时显示年,月和月的差异。日期