怎么从yyyy-mm-dd到dd-mm-yyyy?

时间:2013-12-06 11:30:56

标签: r date format

以下代码:

date.seq <- as.Date("2007-10-01"):as.Date("2007-10-31")
new.dates <- data.frame(date = as.Date(date.seq, origin = "1970-01-01"))

给出以下输出:

> new.dates
  date
1 2007-10-01
2 2007-10-02
3 2007-10-03
4 2007-10-04
5 2007-10-05

我希望日期格式为dd-mm-yyyy。

我试过as.Date(new.dates, "%d/%m/%y")但没有成功。

3 个答案:

答案 0 :(得分:5)

a)解析

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

b)格式

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

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

所以找到下面的代码。

date.seq <- as.Date("2007-10-01"):as.Date("2007-10-31")
new.dates <- data.frame(date = as.Date(date.seq, origin = "1970-01-01"))
new.dates1 <- as.Date( new.dates$date, "%d.%m.%Y")
strftime(new.dates1, "%m-%d-%Y")

答案 1 :(得分:2)

这是另一种方法。只是为了好玩:

sub("^(.*)-(.*-)(.*)$", "\\3-\\2\\1", new.dates[[1]])

#  [1] "01-10-2007" "02-10-2007" "03-10-2007" "04-10-2007" "05-10-2007"
#  [6] "06-10-2007" "07-10-2007" "08-10-2007" "09-10-2007" "10-10-2007"
# [11] "11-10-2007" "12-10-2007" "13-10-2007" "14-10-2007" "15-10-2007"
# [16] "16-10-2007" "17-10-2007" "18-10-2007" "19-10-2007" "20-10-2007"
# [21] "21-10-2007" "22-10-2007" "23-10-2007" "24-10-2007" "25-10-2007"
# [26] "26-10-2007" "27-10-2007" "28-10-2007" "29-10-2007" "30-10-2007"
# [31] "31-10-2007"

答案 2 :(得分:1)

这也有效:

new.dates <- data.frame(format(as.Date(1:31, origin = "1970-01-01"),"%d/%m/%Y"))

在原始代码中,as.Date(start):as.Date(end)会创建一个整数向量,您可以再次使用as.Date(...)将其转换回日期。