【问题标题】:How to go from yyyy-mm-dd to dd-mm-yyyy?如何从 yyyy-mm-dd 到 dd-mm-yyyy?
【发布时间】:2013-12-06 11:30:56
【问题描述】:

以下代码:

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") 没有成功。

【问题讨论】:

    标签: r date format


    【解决方案1】:

    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")
    

    【讨论】:

    • 论坛里有类似的帖子-下次再去论坛搜索。如果你觉得这个答案有用,请点赞
    • 您能否更具体一些,并将您的答案与我提供的代码联系起来?我需要先创建日期范围,如我提供的代码所示。
    【解决方案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"
    

    【讨论】:

      【解决方案3】:

      这也有效:

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

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

      【讨论】:

        猜你喜欢
        • 2020-02-24
        • 2014-04-30
        • 1970-01-01
        • 2019-02-17
        • 2016-01-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多