5

我正在尝试将日期的格式从转换yyyy-mm-dddd-mm-yyyy格式。例如:

D <- "06.12.2012"  
D <- as.Date(D, "%d.%m.%Y")
D
# [1] "2012-12-06"

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

4

2 回答 2

19

a) 解析

   d <- as.Date( "06.12.2012", "%d.%m.%Y")

b) 格式

   strftime(d, "%m-%d-%Y")

或者

   format(d, "%m-%d-%Y")
于 2013-01-03T22:30:58.437 回答
9

严格来说,你不能。ADate是一个整数(自 1970-01-01 以来的天数),打印时看起来像一个字符串。对象的打印格式为DateYYYY-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)
}
于 2013-01-03T22:38:58.093 回答