Pandas日期字符串转换错误:日月倒置及格式匹配问题求助
解决Pandas日期字符串解析中日月倒置及格式不匹配问题
问题原因
- 自动解析时,Pandas默认采用美式日期格式(月-日-年),因此将
1.12.22错误解析为2022年1月12日,出现日月倒置。 - 手动指定格式时,两处错误导致匹配失败:
- 字符串中的
UTC前缀干扰了%z的匹配(%z仅支持±HH:MM格式的时区偏移); - 使用了
%Y(四位年份)匹配两位年份22,格式不兼容。
- 字符串中的
解决方案:预处理字符串+指定正确格式
先移除字符串中的UTC前缀,再用匹配两位年份、日月顺序的格式解析:
import pandas as pd my_date = '1.12.22 14:16UTC+01:00' # 移除时区前缀UTC cleaned_date = my_date.replace('UTC', '') # 按指定格式解析:日.月.两位年份 时:分+时区偏移 parsed_date = pd.to_datetime(cleaned_date, format="%d.%m.%y %H:%M%z") # 如需提取纯日期(2022-12-01) target_date = parsed_date.tz_convert(None).date() print(target_date)
输出结果
2022-12-01
补充说明
%d:匹配日期(兼容单数字日期,比如1会被识别为01日);%m:匹配月份;%y:匹配两位年份,自动转换为四位数(22→2022);tz_convert(None):移除时区信息,仅保留本地时间的日期部分,若需保留时区可省略此步骤。
内容的提问来源于stack exchange,提问作者Seve
相关产品推荐
相关产品推荐

