将数字转换为HH:MM:SS

时间:2015-03-24 09:47:14

标签: r datetime time

我有一个号码154958。我想转换为HH:MM:SS

我看的答案是15:49:58

7 个答案:

答案 0 :(得分:7)

转换为日期,然后转换为子串:

substr(strptime("154958", format = "%H%M%S"), 12, 20)

甚至更好的版本(感谢@Roland):

format(strptime("154958", format = "%H%M%S"), format = "%H:%M:%S")

答案 1 :(得分:6)

我会将其视为格式化输出:

formatC(as.integer("154958"), 
        big.mark = ":", big.interval = 2L)
#[1] "15:49:58"

答案 2 :(得分:5)

您可以尝试下面的内容。

> x <- "154958"
> gsub("^(\\d{2})(\\d{2})(\\d{2})$", "\\1:\\2:\\3", x)
[1] "15:49:58"
> 

OR

> gsub("(\\d{2})(?!$)", "\\1:", x, perl=T)
[1] "15:49:58"

答案 3 :(得分:3)

使用chron

library(chron)
times(chron(times = "154958", format = "hms"))
## [1] 15:49:58

答案 4 :(得分:2)

或甚至更简单(因为它是时间戳,字符数已知)

paste(substr(x,1,2),substr(x,3,4),substr(x,5,6),sep=":")

答案 5 :(得分:0)

这可能是上述答案的衍生形式,但是您可以使用“ hms”软件包:

library(hms)

strptime("154958", "%H%M%S") %>% hms::as.hms()

答案 6 :(得分:-1)

如果您想从中制作真实日期,请尝试以下操作。

strptime("154958", "%H%M%S")

默认为当天,所以如果今天是2015年3月24日,您将获得:

  

[1]&#34; 2015-03-24 15:49:58 CET&#34;