我想将2011-06-01表达为2011年6月1日的格式
我该怎么做?
答案 0 :(得分:5)
一种方法是编写自己的例程,将'st','nd','rd','th'后缀为标准函数strftime()
和/或format()
。< / p>
编辑:这是草稿:
R> datesuffix <- function(dom) { switch(as.character(dom),
+ "1"="st", "2"="nd",
+ "3"="rd", "th") }
R> nicedate <- function(d) { dlt <- as.POSIXlt(d);
+ paste(format(dlt, "%Y %B %e"),
+ datesuffix(dlt$mday), sep="") }
R> nicedate(Sys.Date())
[1] "2011 June 9th"
R> nicedate(as.Date("2011-06-01"))
[1] "2011 June 1st"
编辑2 我想你想重新排序日期字符串。我在北美待了太久......
R> nicedate <- function(d) { dlt <- as.POSIXlt(d);
+ paste(as.character(dlt$mday),
+ datesuffix(dlt$mday),
+ format(dlt, " %B %Y"), sep="") }
R> nicedate(as.Date("2011-06-01"))
[1] "1st June 2011"
R> nicedate(as.Date("2011-06-02"))
[1] "2nd June 2011"
R> nicedate(Sys.Date())
[1] "9th June 2011"
R>
编辑3 必须先纠正datesuffix()
才能转换为char。