R日期格式,如何更改日期格式为2011年6月1日

时间:2011-06-09 11:44:20

标签: r date format

我想将2011-06-01表达为2011年6月1日的格式

我该怎么做?

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。