如何使用 HH:MM:SS 将 difftime 对象格式化为字符串
How to format a difftime object to a string with HH:MM:SS
我认为这是一个很简单的问题,但是我无法解决它,所以任何帮助将不胜感激。
我有一个difftime对象,生成如下:
> duration <- difftime(end_time, start_time)
> duration
Time difference of 15.74106 secs
end_time
和 start_time
对象是 POSIXct 对象,如下所示:
> c(start_time, end_time)
[1] "2018-07-08 20:07:56 EDT" "2018-07-08 20:08:12 EDT"
我需要 duration
以 HH:MM:SS 格式显示 - 即像这样,在一个字符串中:
"00:00:15"
这个问题有简单的答案吗?我试过 format
参数,但它不起作用。
在此先感谢您的帮助,
尼克
一个可能的解决方案是:
library(hms)
duration <- difftime("2018-07-08 20:08:12 EDT", "2018-07-08 20:07:56 EDT")
as.hms(duration)
# 00:00:16
这个 link 可能有帮助。它几乎或多或少地解释了你想要的东西。
通用解决方案,使用基数 R,灵感来自 G. Grothendieck 对问题的回答:
Outputting difftime as HH:MM:SS:mm in R
duration <- difftime(end_time, start_time, units="secs")
x <- abs(as.numeric(duration))
sprintf("%02d:%02d:%02d:%02d", x %/% 86400, x %% 86400 %/% 3600, x %% 3600 %/%
60, x %% 60 %/% 1)
我认为这是一个很简单的问题,但是我无法解决它,所以任何帮助将不胜感激。
我有一个difftime对象,生成如下:
> duration <- difftime(end_time, start_time)
> duration
Time difference of 15.74106 secs
end_time
和 start_time
对象是 POSIXct 对象,如下所示:
> c(start_time, end_time)
[1] "2018-07-08 20:07:56 EDT" "2018-07-08 20:08:12 EDT"
我需要 duration
以 HH:MM:SS 格式显示 - 即像这样,在一个字符串中:
"00:00:15"
这个问题有简单的答案吗?我试过 format
参数,但它不起作用。
在此先感谢您的帮助,
尼克
一个可能的解决方案是:
library(hms)
duration <- difftime("2018-07-08 20:08:12 EDT", "2018-07-08 20:07:56 EDT")
as.hms(duration)
# 00:00:16
这个 link 可能有帮助。它几乎或多或少地解释了你想要的东西。
通用解决方案,使用基数 R,灵感来自 G. Grothendieck 对问题的回答: Outputting difftime as HH:MM:SS:mm in R
duration <- difftime(end_time, start_time, units="secs")
x <- abs(as.numeric(duration))
sprintf("%02d:%02d:%02d:%02d", x %/% 86400, x %% 86400 %/% 3600, x %% 3600 %/%
60, x %% 60 %/% 1)