如何在R中正确将mm/dd/yyyy格式字符型日期转为POSIXct类型?
解决POSIXct日期转换错位问题
你的核心问题是日期格式符指定错误,导致解析逻辑完全偏离预期。针对你的mm/dd/yy 时:分:秒 AM/PM格式,正确的格式符组合如下:
正确转换代码
# 重新加载数据(确保初始状态正确) date_time<-c("6/5/22 10:22:01 AM", "6/5/22 10:23:01 AM", "6/5/22 10:24:01 AM", "6/5/22 10:25:01 AM", "6/5/22 10:26:01 AM", "6/5/22 10:27:01 AM", "6/5/22 10:28:01 AM", "6/5/22 10:29:01 AM", "6/5/22 10:30:01 AM", "6/5/22 10:31:01 AM", "6/5/22 10:32:01 AM", "6/5/22 10:33:01 AM") temp<-c(21.296, 22.047, 22.798, 22.422, 22.172, 22.673, 22.360, 22.110, 21.922, 21.797, 21.672, 21.609) df<-data.frame(date_time,temp) # 关键:使用正确的格式符转换 df$date_time <- as.POSIXct(df$date_time, format = "%m/%d/%y %I:%M:%S %p") # 查看结果 df str(df)
格式符说明
%m:数字格式的月份(1-12)%d:数字格式的日期(1-31)%y:两位数字的年份(22会自动解析为2022)%I:12小时制的小时数(1-12,对应AM/PM)%M:分钟数%S:秒数%p:AM/PM标识(区分上午/下午)
验证结果
转换后date_time列会被正确解析为POSIXct类型,日期显示为2022-06-05 10:22:01这类正确格式,不会出现0006年的错误。
内容的提问来源于stack exchange,提问作者Marta Román
相关产品推荐
相关产品推荐

