Formatting a date in R without leading zeros

2019-02-21 18:51发布

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.

标签: r date zero-pad
2条回答
地球回转人心会变
2楼-- · 2019-02-21 19:11

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
查看更多
你好瞎i
3楼-- · 2019-02-21 19:33

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.

查看更多
登录 后发表回答