日期从yyyy-mm-dd转换为dd-mm-yyyy

Ali*_*vil 4 r date

我正在尝试将数据框中的日期从yyyy-mm-dd转换为dd-mm-yyyy格式.例如:

D <- "06.12.2012"  
as.Date(D, "%d.%m.%Y")
D
Run Code Online (Sandbox Code Playgroud)

回报:

"2012-12-06"
Run Code Online (Sandbox Code Playgroud)

如何将其转换为"06-12-2012"?

Dir*_*tel 19

a)解析

   d <- as.Date( "06.12.2012", "%d.%m.%Y")
Run Code Online (Sandbox Code Playgroud)

b)格式

   strftime(d, "%m-%d-%Y")
Run Code Online (Sandbox Code Playgroud)

要么

   format(d, "%m-%d-%Y")
Run Code Online (Sandbox Code Playgroud)


Jos*_*ich 8

严格来说,你不能.A Date是一个整数(自1970-01-01以来的天数),在打印时看起来像一个字符串.Date对象的打印格式为YYYY-MM-DD,因为这是ISO-8601标准.

正如@GSee在聊天中提到的那样,您必须使用以下内容重新定义print.Date方法:

print.Date <- function(x, max=NULL, ...) {
  if (is.null(max)) 
    max <- getOption("max.print", 9999L)
  if (max < length(x)) {
    print(format(x[seq_len(max)], "%d-%m-%Y"), max = max, ...)
    cat(" [ reached getOption(\"max.print\") -- omitted", 
      length(x) - max, "entries ]\n")
  }
  else print(format(x, "%d-%m-%Y"), max = max, ...)
  invisible(x)
}
Run Code Online (Sandbox Code Playgroud)