我有一个号码154958
。我想转换为HH:MM:SS
。
我看的答案是15:49:58
。
答案 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;