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

如何在R语言中将"Mon, November 14, 2022 11:30 AM"转为datetime?

问题原因

原代码的错误在于先用as.Date()处理包含时间的字符串:as.Date()默认仅能识别标准日期格式,无法解析带星期缩写、月份全称以及AM/PM标记的完整时间字符串,因此抛出格式不明确的错误。另外,as.Date()仅处理日期部分,即便格式匹配也会丢失时间信息。

正确解决方法

直接使用as.POSIXct()并指定完全匹配目标字符串的格式参数,无需先转换为Date类型。具体代码如下:

# 定义待转换的字符串
date_str <- "Mon, November 14, 2022 11:30 AM"

# 转换为POSIXct datetime类型,指定格式和时区
datetime_obj <- as.POSIXct(date_str, format = "%a, %B %d, %Y %I:%M %p", tz = "UCT")

# 可选:转换为指定格式的字符串输出
formatted_datetime <- strftime(datetime_obj, format = "%Y-%m-%d %H:%M:%S", tz = "UCT")

# 查看结果
print(formatted_datetime)
关键格式符说明
  • %a: 星期缩写(如Mon)
  • %B: 月份全称(如November)
  • %d: 两位数字的日期(如14)
  • %Y: 四位数字的年份(如2022)
  • %I: 12小时制的两位数字小时(如11)
  • %M: 两位数字的分钟(如30)
  • %p: AM/PM标记(如AM)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 21:48:14