You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用R语言Lubridate包解析日期时间时提示格式匹配失败错误

问题原因

报错All formats failed to parse. No formats found.的核心原因是传入parse_date_time()的格式声明与待解析的字符串实际结构完全不匹配:
原代码使用的格式串%I:%M %p %m/%d/%Y存在两处不匹配:

  • %m对应阿拉伯数字格式的月份(如09、9),但你的字符串中月份是英文缩写Sept,需要改用匹配英文月份缩写的格式符%b
  • 你声明了%m/%d/%Y的斜杠分隔月日年结构,但实际字符串的日年部分结构为[月份缩写] [日], [年],分隔符、字段顺序都不匹配

修复后代码

library(lubridate)
# 可选:如果系统语言非英文导致月份缩写识别失败,先运行这句调整时间区域语言
# Sys.setlocale("LC_TIME", "English")

datetime_clean <- c("4:10 pm Sept 18, 2021", "12:06 pm Sept 18, 2021", "9:42 am Sept 18, 2021")

datetime_parse <- parse_date_time(
  datetime_clean, 
  orders = "%I:%M %p %b %d, %Y" 
)

格式符对应说明

  • %I:匹配12小时制的小时数,对应示例中的4、12、9
  • %M:匹配分钟数,对应示例中的10、06、42
  • %p:匹配上午/下午标识am/pm
  • %b:匹配英文月份缩写Sept
  • %d:匹配日期18
  • 格式串中的, 原样匹配字符串里日期和年份之间的逗号加空格
  • %Y:匹配4位数字的年份2021

运行上述代码即可正常解析得到标准POSIXct格式的时间序列,不会再报格式匹配失败错误。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 05:36:03