You need to enable JavaScript to run this app. R语言日期转换:将dd/mm/yyyy HH:mm格式日期转为yyyy-mm-dd的方法
优惠活动
大模型
产品
解决方案
定价
更多

R语言日期转换:将dd/mm/yyyy HH:mm格式日期转为yyyy-mm-dd的方法

问题根源

你当前Date_Col的实际格式为日/月/四位年 时分,此前所有转换逻辑都误用了「月/日/年」的格式规则,导致解析完全错误:

  • 直接调用as.Date未指定格式时,R默认按年在前的规则猜测格式,把开头的日值当成了年份,才会出现0014-10-20这类异常结果;
  • 用as.Date(df$Date_Col, "%m/%d/%Y")时,会把第一个字段的数值识别为月份,当该值超过12时就返回NA,仅当输入的日、月值都≤12时才会碰巧解析出错误的日期(比如输入07/06/2016被错解析为7月6日,而非实际的6月7日),和你观察到的仅单个值有效现象完全匹配;
  • 用lubridate的mdy()是针对「月-日-年」格式的解析函数,和当前数据的「日-月-年」规则不匹配,所以全部解析失败返回NA。
可行转换方法

方法1:base R 原生实现

直接给as.Date指定对应「日/月/年」的格式参数,时间后缀会被自动忽略:

df$Date_Col <- as.Date(df$Date_Col, format = "%d/%m/%Y")

方法2:lubridate 实现

对应「日-月-年」的解析函数是dmy(),也可以先解析完整的时间戳再转日期格式:

library(lubridate)
# 直接解析日-月-年的日期部分
df$Date_Col <- as.Date(dmy(df$Date_Col))
# 或者先解析完整的带时间格式的字符串再提取日期,效果一致
# df$Date_Col <- as.Date(dmy_hms(df$Date_Col))

转换完成后,Date_Col会以R标准Date类存储,输出默认就是yyyy-mm-dd格式,符合需求。


内容的提问来源于stack exchange,提问作者zhd_

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.03 02:45:03