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

Python中如何直接打印含datetime的数组并显示简洁日期格式?

问题:打印包含datetime对象的数组时保留简洁日期格式

单独提取PR的更新日期并打印时,输出格式符合预期:

updated = pull_request.updated_at
print(f"Updated At: {updated}")

输出:

Updated At: 2024-05-09 00:45:14+00:00

但将日期放入数组后直接打印数组,输出会显示datetime对象的内部表示:

updated = pull_request.updated_at
pull_requests.append([updated])

for pull_request in pull_requests:
  print(pull_request)

输出:

[datetime.datetime(2024, 5, 9, 6, 7, 36, tzinfo=datetime.timezone.utc)]

需求:直接打印数组时,日期仍显示为2024-05-09 00:45:14+00:00这类简洁格式,且无需逐个提取数组元素。


解决方案

方法1:存入数组前将datetime转为字符串

如果后续不需要对日期做计算等操作,直接把datetime对象转为字符串后存入数组,打印时就会显示简洁格式:

import datetime

# 模拟pull_request对象
class MockPR:
    def __init__(self):
        self.updated_at = datetime.datetime(2024, 5, 9, 0, 45, 14, tzinfo=datetime.timezone.utc)

pull_request = MockPR()
pull_requests = []

updated = pull_request.updated_at
pull_requests.append([str(updated)])  # 调用str()转换为简洁格式字符串

for item in pull_requests:
    print(item)

输出:

['2024-05-09 00:45:14+00:00']

方法2:自定义列表类重写打印逻辑

如果需要保留datetime对象的原有功能(比如后续做日期比较、运算),可以自定义一个继承自list的类,重写__repr__方法,让列表打印时自动将内部的datetime对象转为简洁字符串:

import datetime

class DateTimeList(list):
    def __repr__(self):
        # 遍历列表元素,对datetime对象做特殊处理
        formatted_items = []
        for elem in self:
            if isinstance(elem, datetime.datetime):
                formatted_items.append(repr(str(elem)))
            else:
                # 非datetime元素保持原有打印格式
                formatted_items.append(repr(elem))
        return f"[{', '.join(formatted_items)}]"

# 模拟pull_request对象
class MockPR:
    def __init__(self):
        self.updated_at = datetime.datetime(2024, 5, 9, 0, 45, 14, tzinfo=datetime.timezone.utc)

pull_request = MockPR()
pull_requests = []

updated = pull_request.updated_at
# 使用自定义的DateTimeList包装日期
pull_requests.append(DateTimeList([updated]))

for item in pull_requests:
    print(item)
    # 仍可正常使用datetime对象的功能
    print(f"日期年份:{item[0].year}")

输出:

['2024-05-09 00:45:14+00:00']
日期年份:2024

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 06:45:05