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

为何datetime.date对象放入列表/元组后打印显示格式不同?

为什么datetime.date对象放入列表后打印会显示"datetime.date"字样?

现象复现

import datetime
endDate = datetime.datetime.strptime("2022-05-03", '%Y-%m-%d').date()
# 单独打印对象
print(endDate)
# 输出:2022-05-03

# 放入列表后打印
print([endDate])
# 输出:[datetime.date(2022, 5, 3)]

原因解析

这是Python中两种字符串表示方法的差异导致的:

  • 单独调用print()时,会触发对象的__str__()方法,datetime.date类的__str__()被设计为返回易读的YYYY-MM-DD格式字符串,适合用户查看。
  • 当打印容器(如列表、元组)时,Python会调用容器内每个元素的__repr__()方法,datetime.date的__repr__()返回的是对象的官方调试表示,包含类型名称和构造参数,方便开发者快速识别对象类型和内部数据。

如果想让列表打印时也显示成YYYY-MM-DD格式,可以手动转换每个元素为字符串:

print([str(date) for date in [endDate]])
# 输出:['2022-05-03']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 16:05:48