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

如何在Pandas中去除Datetime的时分秒,仅保留日期

处理带时区/时分秒的日期字符串,提取纯日期

问题原因

你用pd.to_datetime(..., format="%Y-%m-%d")没生效,是因为原字符串包含时区、时分秒等额外信息,pandas发现格式不匹配时会自动 fallback 到完整解析逻辑,所以最终结果还是保留了时间和时区部分。

实用解决方法

方法1:先解析完整时间,再提取日期

先让pandas正确解析带时区的完整时间,再通过dt属性提取纯日期:

import pandas as pd

# 示例数据
raw_dates = ["2023-10-05 23:57:10+00:00", "2023-10-06 12:34:56+08:00"]
df = pd.DataFrame({"raw_date": raw_dates})

# 第一步:解析完整时间(不用指定format,pandas会自动识别时区)
df["full_datetime"] = pd.to_datetime(df["raw_date"])

# 提取为Python原生date对象(无时间、时区)
df["pure_date"] = df["full_datetime"].dt.date

# 或者保留pandas datetime类型,但时间设为00:00:00(时区会保留,但时间部分清零)
df["datetime_date_only"] = df["full_datetime"].dt.normalize()

# 转成字符串格式的纯日期
df["date_str"] = df["full_datetime"].dt.strftime("%Y-%m-%d")

方法2:直接截取日期部分再转换

如果原字符串的日期部分是固定的前10位(比如YYYY-MM-DD格式),可以直接截断字符串再转,跳过时间和时区解析:

df["pure_date"] = pd.to_datetime(df["raw_date"].str[:10])

这种方法得到的是pandas的datetime类型,仅包含日期,没有时分秒和时区。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 04:40:55