R 如何格式化&x27;第'天;作为POSIXct日期中的单个数字
我希望这是一个相对简单的问题。我正在尝试用R打印一些日期,但需要以特定的格式输出,用一个字符表示日期,如:2/10/2013 下面是我尝试做的一个例子:R 如何格式化&x27;第'天;作为POSIXct日期中的单个数字,r,date,formatting,posixct,R,Date,Formatting,Posixct,我希望这是一个相对简单的问题。我正在尝试用R打印一些日期,但需要以特定的格式输出,用一个字符表示日期,如:2/10/2013 下面是我尝试做的一个例子: date_time <- as.POSIXct(paste("3/02/2012", "00:10:09", sep=" "), format="%d/%m/%Y %H:%M:%S") print(format(date_time, "%d/%m/%Y %H:%M:%S")) 但我想要的是不要有前导0,就像这样: "3/02/2012
date_time <- as.POSIXct(paste("3/02/2012", "00:10:09", sep=" "), format="%d/%m/%Y %H:%M:%S")
print(format(date_time, "%d/%m/%Y %H:%M:%S"))
但我想要的是不要有前导0,就像这样:
"3/02/2012 00:10:09"
你知道怎么用这种方式格式化吗?请注意,对于两位数的天数,我仍然希望返回两位数,对于月份,我希望始终返回两位数
注:是的,在澳大利亚,我们将日期dd/mm/yyyy格式化为
?strtime
:
‘%e’ Day of the month as decimal number (1-31), with a leading
space for a single-digit number.
因此:
或
挑剔,挑剔。不确定是否有更简单的方法,但您可以编写自己的格式函数:
date_time <- as.POSIXct(paste("3/02/2012", "00:10:09", sep=" "), format="%d/%m/%Y %H:%M:%S")
format.date <- function(x, ...) {
tmp <- format(x, ...)
tmp <- sub("^[0]+", "", tmp)
tmp <- sub('/0','/', tmp)
return(tmp)
}
format.date(date_time, "%d/%m/%Y %H:%M:%S")
## "3/2/2012 00:10:09"
date\u time继续Jake的答案,但没有正则表达式,您可以使用stringr::str\u squish
删除%e
使用的前导空格
str\u squish(格式(日期时间,%e/%m/%Y%H:%m:%S))
Ahhh,太接近了!现在年份和时间之间没有空格了?@jprockbelly修正了正则表达式:)
gsub("^ ", "" , format(date_time, "%e/%m/%Y %H:%M:%S"))
[1] "3/02/2012 00:10:09"
gsub("^0", "", format(date_time, "%d/%m/%Y %H:%M:%S"))
[1] "3/02/2012 00:10:09"
date_time <- as.POSIXct(paste("3/02/2012", "00:10:09", sep=" "), format="%d/%m/%Y %H:%M:%S")
format.date <- function(x, ...) {
tmp <- format(x, ...)
tmp <- sub("^[0]+", "", tmp)
tmp <- sub('/0','/', tmp)
return(tmp)
}
format.date(date_time, "%d/%m/%Y %H:%M:%S")
## "3/2/2012 00:10:09"