Formatting a date in R without leading zeros

2019-02-21 18:32发布

问题:

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


标签: r date zero-pad