hyper-cookie Asked:2022-04-07 05:10:35 +0000 UTC2022-04-07 05:10:35 +0000 UTC 2022-04-07 05:10:35 +0000 UTC 为什么“09/03/2021 00:00”>“07/04/2021 00:00”是真的? 772 你能告诉我为什么是真的吗?"09/03/2021 00:00" > "07/04/2021 00:00" 比较时,答案是假的。"06/03/2021 00:00" > "07/04/2021 00:00" python 3 个回答 Voted Best Answer insolor 2022-04-07T13:48:37Z2022-04-07T13:48:37Z 因为字符串(无论其中写了什么)是按字典顺序比较的(简化 - 就像字典中的单词) - 比较只是逐个字符,第一个字符比后面的字符更重要。因此,在您的示例中,日期越大,日期似乎越大,因此,如果以相反的顺序重新排列(从最重要的年份,到不太重要的日子),那么它将“正确比较” "(从将此字符串视为日期的人的角度来看)。 要精确比较日期,而不是一组字符,可以将其转换为日期对象,然后才比较这些对象: from datetime import datetime d1 = "09/03/2021 00:00" d2 = "07/04/2021 00:00" date1 = datetime.strptime(d1, "%d/%m/%Y %H:%M") print(repr(date1)) # Вывод: datetime.datetime(2021, 3, 9, 0, 0) date2 = datetime.strptime(d2, "%d/%m/%Y %H:%M") print(repr(date2)) # Вывод: datetime.datetime(2021, 4, 7, 0, 0) print(date1 > date2) # Вывод: False Эникейщик 2022-04-07T15:58:51Z2022-04-07T15:58:51Z 因为您不是按照您的意愿比较日期,而是比较单词。并且字符“9”在字母表中的出现晚于字符“7”。那些。出于同样的原因,梁赞 > 莫斯科。 hyper-cookie 2022-04-07T05:16:31Z2022-04-07T05:16:31Z 以格式比较日期day/month/year无法正常工作。您需要使用格式year/month/day。
因为字符串(无论其中写了什么)是按字典顺序比较的(简化 - 就像字典中的单词) - 比较只是逐个字符,第一个字符比后面的字符更重要。因此,在您的示例中,日期越大,日期似乎越大,因此,如果以相反的顺序重新排列(从最重要的年份,到不太重要的日子),那么它将“正确比较” "(从将此字符串视为日期的人的角度来看)。
要精确比较日期,而不是一组字符,可以将其转换为日期对象,然后才比较这些对象:
因为您不是按照您的意愿比较日期,而是比较单词。并且字符“9”在字母表中的出现晚于字符“7”。那些。出于同样的原因,梁赞 > 莫斯科。
以格式比较日期
day/month/year无法正常工作。您需要使用格式year/month/day。