Python如何将获取的当月所有日期转为YYYY-MM-DD标准格式
你可以使用datetime.date对象内置的格式化方法直接转换为YYYY-MM-DD格式的字符串,有两种常用实现方式:
方案1:生成日期列表时直接转换为目标格式
修改你原来的列表生成式,生成结果直接就是可读字符串格式:
import datetime import calendar now = datetime.datetime.now() year = now.year month = now.month num_days = calendar.monthrange(year, month)[1] # 方式a:用strftime指定格式 days = [datetime.date(year, month, day).strftime("%Y-%m-%d") for day in range(1, num_days + 1)] # 方式b:date对象的isoformat方法默认就是%Y-%m-%d格式,写法更简洁 # days = [datetime.date(year, month, day).isoformat() for day in range(1, num_days + 1)]
运行后输出结果示例:
['2021-08-01', '2021-08-02', ..., '2021-08-31']
方案2:对已有的date对象列表做批量转换
如果你已经生成了存储datetime.date对象的days列表,单独做转换即可:
# 方式a str_days = [d.strftime("%Y-%m-%d") for d in days] # 方式b # str_days = [d.isoformat() for d in days]
补充说明
如果后续还需要对日期做计算、比较等操作,建议先保留datetime.date类型的列表,需要输出/存储的时候再转换为字符串即可。
内容的提问来源于stack exchange,提问作者yousof
相关产品推荐
相关产品推荐

