问题
Is there a way to use the format
function on a date object, specifically an object of class POSIXlt
, POSIXct
, or Date
, with the format %Y, %m, %d
such that leading zeros are stripped from each of those 3 fields?
For example, I would like format(as.Date("1998-09-02"), "%Y, %m, %d")
to return 1998, 9, 2
and not 1998, 09, 02
.
回答1:
Just remove the leading zeros at the end:
> gsub(" 0", " ", format(as.Date("1998-09-02"), "%Y, %m, %d"))
[1] "1998, 9, 2"
Use %e to obtain a leading space instead of a leading zero.
回答2:
I have discovered a workaround by using year
, month
and day
function of lubridate package. With the help of glue::glue, it is easy to do it as following:
require(lubridate)
require(glue)
dt <- "1998-09-02"
glue("{year(dt)}, {month(dt)}, {day(dt)}")
# 1998, 9, 2
来源:https://stackoverflow.com/questions/25387160/formatting-a-date-in-r-without-leading-zeros