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

如何用Python Pandas将MM/DD/YYYY时间格式转为YYYY-MM-DDThh:mm:ssZ

解决CSV时间格式转换问题

核心错误说明

你之前的代码误用了pd.to_datetime()的format参数:这个参数是用来指定原始时间字符串的格式,而非你想要的输出格式。同时你用了错误的格式符%s(这是Unix时间戳格式,不是秒数),导致解析失败。

正确解决方案

要完成格式转换,需要分两步:先正确解析原始时间字符串为datetime对象,再将datetime对象格式化为目标字符串格式。

完整代码

import pandas as pd

# 读取CSV文件
df = pd.read_csv('input.csv', na_filter=False, skiprows=0)

# 第一步:解析原始时间格式(MM/DD/YYYY HH:mm)
df['datetime'] = pd.to_datetime(df['datetime'], format='%m/%d/%Y %H:%M')

# 第二步:格式化为目标格式 YYYY-MM-DDThh:mm:ssZ
df['datetime'] = df['datetime'].dt.strftime('%Y-%m-%dT%H:%M:%SZ')

print(df)

关键细节解释

  1. 解析阶段的format参数:
    原始时间格式是12/30/2023 22:13,对应格式符:

    • %m:两位数字的月份(12)
    • %d:两位数字的日期(30)
    • %Y:四位数字的年份(2023)
    • %H:24小时制的两位小时(22)
    • %M:两位数字的分钟(13)
      用这个格式解析能确保pandas准确识别时间,避免自动推断出错。
  2. 格式化阶段的strftime:
    目标格式YYYY-MM-DDThh:mm:ssZ对应:

    • %Y-%m-%d:年-月-日
    • T:分隔日期和时间的固定字符
    • %H:%M:%S:时:分:秒(原始数据无秒,自动补00)
    • Z:表示UTC时区的固定后缀(若你的原始时间是本地时区,需先转换时区再添加Z,否则直接拼接即可)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 19:30:54