如何用另一个日期替换日期中的日期?

2024-10-03 15:25:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用if语句中的日期替换日期,但我在这一年中一直得到这个输出。 除了2020年5月15日之外的5月15日。代码如下:

today_date = datetime.datetime.now()
date = today_date.date()
formatted_date = datetime.date.strftime(date, "%m/%d/%Y")

mmonth = date.month
myear = date.year
mdate = date.day

if mdate < 7:
    m0weekend = formatted_date.replace(str(myear),str(mmonth),1)
else:
    m0weekend = formatted_date.replace(str(myear),str(mmonth),15)

Tags: 代码todaydatetimedateif语句nowreplace
3条回答

转换为字符串之前的一天更容易替换:
date = date.replace(day=1)

或者,在您的情况下:

if mdate < 7:
    m0weekend = date.replace(day=1)
else:
    m0weekend = date.replace(day=15)

您可能直接从datetime获得今天的datetime.date,而不是创建datetime.datetime并转换为日期。今天完成后,您可以创建所需的datetime.date,并将其转换为str,即:

import datetime
today = datetime.date.today()
date = datetime.date(today.year, today.month, 1 if today.day < 7 else 15)
formatted_date = datetime.date.strftime(date, "%m/%d/%Y")
print(formatted_date)  # 05/15/2020

格式化日期实际上是一个字符串。 您使用的是str.replace()方法,而不是datetime.date.replace()方法

import datetime

today_date = datetime.datetime.now()
pre_formatted_date = today_date.date()


mmonth = pre_formatted_date.month
myear = pre_formatted_date.year
mdate = pre_formatted_date.day

if mdate < 7:
    pre_formatted_date = pre_formatted_date.replace(day=1)
else:
    pre_formatted_date = pre_formatted_date.replace(day=15)

print(pre_formatted_date)
formatted_date = pre_formatted_date.strftime("%m/%d/%Y")
print(formatted_date)

具有以下输出:

2020-05-15
05/15/2020

相关问题 更多 >