如何把利用difftime函数获得的时间差转换为小时:分:秒的格式?

0
已邀请:
0

engikeer 2017-12-05 回答

difftime()没有格式输出的选项,difftime类的格式化函数format.difftime()只是将数值与单位拼接在一起输出,例如:
x <- as.POSIXct("2017-12-05 13:38:50") - as.POSIXct("2017-12-05 5:10:00")
format(x)
#> [1] "8.480556 hours"
可通过编写一个简单的格式化函数输出需要的格式,例如:
format_difftime <- function(difftime) {
if (class(difftime) != "difftime") {
stop("input must be difftime")
}

num <- as.numeric(difftime, units = "secs")
ifelse(num >= 0,
paste(num %/% 3600, num %% 3600 %/% 60, floor(num %% 60), sep = ":"),
paste0("-", paste(-num %/% 3600, -num %% 3600 %/% 60, floor(-num %% 60), sep = ":")))
}

调用方法:
format_difftime(x)
#> [1] "8:28:50"

要回复问题请先登录注册