为什么相同的内容类型的字符串不相等?

为什么相同的内容类型的字符串不相等?

img

start_time = '2022/1/1'
time1 = 7
tm = '20211225'
mydate1 = datetime.datetime.strptime(start_time, '%Y/%m/%d')

                start_date = ((str(mydate1 - datetime.timedelta(days=time1)))[0:-8]).replace('-','')
                end_date = ((str(mydate1 + datetime.timedelta(days=time1)))[0:-8]).replace('-','')
                print(start_date,end_date)
                print(start_date == tm)

因为他们只是看上去一样而已,问题出在你的切片上,多切了一个空格

print(len(start_date))
print(len(tm))

你输出的start_date是多少?
用len(start_date)测试,输出值为9,说明两者长度不同,自然相等判断不成立。尾部都了一个空格
tm确定长度为8,你可以把判断语句改为
if start_date[:8] == tm :
或者
print(start_date[:8] == tm)

你都会strptime了,那就用strftime格式日期字符串:
start_date = (mydate1 - datetime.timedelta(days=time1)).strftime('%Y%m%d')