Python中如何固定日期日为16,月份和年份取当前值?
生成指定日的日期对象解决方案
你可以直接使用date()或datetime()构造函数,传入指定的年、月、日参数来生成目标日期对象,完全不需要通过字符串拼接或除法操作来实现。
核心实现代码
from datetime import date, datetime day = 16 current_year = datetime.now().year current_month = datetime.now().month # 直接构造目标日期对象 target_date = date(year=current_year, month=current_month, day=day) print(target_date)
扩展:生成近6个月的16日日期
如果需要复用你之前的代码逻辑,生成当前月及过去5个月的16日日期,可以这样写:
from datetime import date, datetime from dateutil.relativedelta import relativedelta today = date.today() # 生成当前月及往前推5个月的16日日期列表 target_dates = [ date(year=(today - relativedelta(months=i)).year, month=(today - relativedelta(months=i)).month, day=16) for i in range(6) ] # 按你的变量名输出 for idx, dt in enumerate(target_dates): print(f"c{idx}: {dt}")
注意:由于16日是所有月份都存在的日期,所以不会出现日期不存在的
ValueError,如果后续要设置更大的日期(比如31日),则需要额外处理小月的情况。
内容的提问来源于stack exchange,提问作者Pulkit Sharma
相关产品推荐
相关产品推荐

