繁体   English   中英

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

[英]R date format, how can I change the date format as the 1st June 2011

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

我怎样才能做到这一点?

一种方法是编写自己的例程,为从标准函数strftime()和/或format()获得的内容添加后缀“st”、“nd”、“rd”、“th”。

编辑:这是一个粗略的草稿:

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。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM