如何修改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
相关产品推荐
相关产品推荐

