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

如何在R中将ddmmyyhhmmss格式字符串向量转换为日期?

解决R语言中字符串转日期时间的问题

嘿,我一眼就看出你踩的坑啦!你的日期字符串是240515055655这种格式,拆解开来是两位年份(24=2024)+两位月份(05=5月)+两位日期(15=15日)+两位小时(05=5点)+两位分钟(56)+两位秒(55),但你之前的方法要么搞混了函数用途,要么没匹配对格式,所以才会出错。

先说说你之前的错误点:

  • 用strftime的时候搞反了!strftime是把已经是日期时间类型的对象转换成字符串,而不是反过来把字符串转成日期时间。要解析字符串成日期时间,应该用strptime才对,这就是为什么你得到全NA的原因。
  • 用as.POSIXct的时候没加format参数,R默认把这些数字字符串当成“从origin开始的秒数”来计算,算出来的年份自然超级离谱,完全不符合预期。

下面是两种正确的解决方法,任选其一就行:

方法1:用strptime解析

# 把字符串解析成POSIXlt类型的日期时间对象
datetime <- strptime(dat24$DateAndTime, format = "%y%m%d%H%M%S", tz = "GMT")
# 查看前几个结果
print(head(datetime))

方法2:用as.POSIXct解析(指定format参数)

# 直接解析成POSIXct类型,一定要加format参数匹配你的字符串格式
datetime <- as.POSIXct(dat24$DateAndTime, format = "%y%m%d%H%M%S", tz = "GMT")
# 查看前几个结果
print(head(datetime))

用这两种方法,你给的第一个字符串240515055655就会被正确解析成"2024-05-15 05:56:55 GMT",完全符合预期啦!

内容的提问来源于stack exchange,提问作者Thomas André Wang

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 03:55:01