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

关于datetime.time()传入strftime后返回未请求内容的原因咨询

为什么传入datetime.time()给strftime会出现额外内容?

嘿,我来帮你拆解这个问题~你看到的“未请求的内容”其实不是strftime方法返回的,大概率是你的代码同时输出了**datetime.time对象本身**和strftime的格式化结果,才会出现这种情况。

具体来说:

  • 当你直接打印datetime.time()对象时,它会用默认格式输出,包含时、分、秒甚至微秒(比如10:40:54.160337),同时它的类型是datetime.time。
  • 而strftime()方法只会返回你指定格式的字符串(比如你例子里的10:40 10:40:54 AM),类型是str。

举个例子,如果你写了这样的代码:

from datetime import time
t = time(10, 40, 54, 160337)
# 同时打印了对象本身和strftime的结果
print(t, type(t), t.strftime('%H:%M %I:%M:%S %p'), type(t.strftime('%H:%M %I:%M:%S %p')))

就会输出类似你看到的内容:10:40:54.160337 <class 'datetime.time'> 10:40 10:40:54 AM <class 'str'>。

验证一下:

如果你单独调用strftime()并打印,只会得到你想要的格式化结果:

from datetime import time
print(time(10,40,54,160337).strftime('%H:%M %I:%M:%S %p'))

输出只会是:10:40 10:40:54 AM,不会带那个带微秒的时间串。

另外,如果你是错误地把datetime.time对象传给了time模块的strftime方法,通常会直接报错(因为time.strftime需要的是struct_time类型,不是datetime.time),所以这种情况可能性不大。

总结一下:你看到的额外内容是datetime.time对象自身的默认输出,不是strftime返回的——检查下代码是不是同时打印了对象本身和格式化结果就好啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 08:17:49