将数字转换为 HH:MM:SS
Convert a number to HH:MM:SS
我有一个号码154958
。我想转换为 HH:MM:SS
.
我正在寻找的答案是 15:49:58
。
您可以试试下面的方法。
> x <- "154958"
> gsub("^(\d{2})(\d{2})(\d{2})$", "\1:\2:\3", x)
[1] "15:49:58"
>
或
> gsub("(\d{2})(?!$)", "\1:", x, perl=T)
[1] "15:49:58"
或者更简单(因为它是时间戳,字符数是已知的)
paste(substr(x,1,2),substr(x,3,4),substr(x,5,6),sep=":")
我会将其视为格式化输出:
formatC(as.integer("154958"),
big.mark = ":", big.interval = 2L)
#[1] "15:49:58"
转换为日期然后子字符串:
substr(strptime("154958", format = "%H%M%S"), 12, 20)
或者更好的版本(感谢@Roland):
format(strptime("154958", format = "%H%M%S"), format = "%H:%M:%S")
如果你想从中得到一个真正的日期,试试下面的方法。
strptime("154958", "%H%M%S")
默认为当天,因此如果今天是 2015 年 3 月 24 日,您将得到:
[1] "2015-03-24 15:49:58 CET"
使用chron
包
library(chron)
times(chron(times = "154958", format = "hms"))
## [1] 15:49:58
这可能是上述答案的衍生,但您可以使用 "hms" 包:
library(hms)
strptime("154958", "%H%M%S") %>% hms::as.hms()
我有一个号码154958
。我想转换为 HH:MM:SS
.
我正在寻找的答案是 15:49:58
。
您可以试试下面的方法。
> x <- "154958"
> gsub("^(\d{2})(\d{2})(\d{2})$", "\1:\2:\3", x)
[1] "15:49:58"
>
或
> gsub("(\d{2})(?!$)", "\1:", x, perl=T)
[1] "15:49:58"
或者更简单(因为它是时间戳,字符数是已知的)
paste(substr(x,1,2),substr(x,3,4),substr(x,5,6),sep=":")
我会将其视为格式化输出:
formatC(as.integer("154958"),
big.mark = ":", big.interval = 2L)
#[1] "15:49:58"
转换为日期然后子字符串:
substr(strptime("154958", format = "%H%M%S"), 12, 20)
或者更好的版本(感谢@Roland):
format(strptime("154958", format = "%H%M%S"), format = "%H:%M:%S")
如果你想从中得到一个真正的日期,试试下面的方法。
strptime("154958", "%H%M%S")
默认为当天,因此如果今天是 2015 年 3 月 24 日,您将得到:
[1] "2015-03-24 15:49:58 CET"
使用chron
包
library(chron)
times(chron(times = "154958", format = "hms"))
## [1] 15:49:58
这可能是上述答案的衍生,但您可以使用 "hms" 包:
library(hms)
strptime("154958", "%H%M%S") %>% hms::as.hms()