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

使用datetime.strptime解析仅含时间的字符串为何输出默认日期?

使用datetime.strptime解析仅含时间的字符串为何输出默认日期?

嗨,这个问题其实挺常见的,我来给你拆解下原因~

首先你要明白,Python里datetime.strptime()函数返回的是一个完整的datetime对象,这个对象必须同时包含日期和时间信息,缺了哪一部分都不行。当你只传入了时间字符串(比如你的"8:00"),没有指定日期部分的时候,Python的datetime模块就会自动给你填充一个默认的起始日期——也就是1900-01-01,这是模块内置的规则哦。

看你的代码示例:

time_str = "8:00"
time_dt = dt.datetime.strptime(time_str,"%H:%M")
print(time_dt)

这里的%H:%M格式符只定义了小时和分钟的解析规则,但datetime对象本身需要完整的日期时间数据,所以就用默认日期补全了,最终输出就是1900-01-01 08:00:00。

如果你的需求只是获取时间部分,不想带日期的话,可以调用datetime对象的time()方法来提取:

print(time_dt.time())

这样输出就会是08:00:00,只有你需要的时间信息啦。

至于为什么默认日期是1900-01-01?这是沿用了很多传统系统里的日期起始设定,算是datetime模块的一个既定规则,不管你在哪个notebook里跑,这个默认值都是固定的,所以你换了环境结果也一样~

备注:内容来源于stack exchange,提问作者Sreeram Ajithkumar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.22 08:43:07