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

如何修改Python日期列表格式:去除日期前导零

问题:调整日期列表的前导零格式

我通过以下Python代码生成当前一周的日期列表:

import datetime
now = datetime.datetime.now()
dates = [(now + datetime.timedelta(days=d)).strftime("%B %d") for d in range(7)]
print (dates)

运行后得到结果:

['February 08', 'February 09', 'February 10', 'February 11', 'February 12', 'February 13', 'February 14']

我希望将10号之前的日期改为不带前导零的格式,期望结果如下:

['February 8', 'February 9', 'February 10', 'February 11', 'February 12', 'February 13', 'February 14']

请问该如何修改代码实现这一需求?


解决方案

你可以通过判断日期的day属性,选择不同的格式化规则来实现需求:

方式一:循环遍历处理(可读性更高)

import datetime
now = datetime.datetime.now()
dates = []
for d in range(7):
    current_date = now + datetime.timedelta(days=d)
    # 根据日期是否小于10选择格式化字符串
    if current_date.day < 10:
        # Linux/macOS 用 %-d,Windows 环境替换为 %#d
        date_str = current_date.strftime("%B %-d")
    else:
        date_str = current_date.strftime("%B %d")
    dates.append(date_str)
print(dates)

方式二:列表推导式(更简洁)

import datetime
now = datetime.datetime.now()
dates = [
    (now + datetime.timedelta(days=d)).strftime("%B %-d" if (now + datetime.timedelta(days=d)).day < 10 else "%B %d")
    for d in range(7)
]
print(dates)

说明

  • %-d(Linux/macOS)或%#d(Windows)是用于去除日期前导零的格式化符号,而%d会保留两位带前导零的格式。
  • 通过判断current_date.day < 10,我们可以给10号之前的日期应用不带前导零的格式,10号及之后的日期保持原格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 02:50:27