[英]Comparing Dates string in Python
我需要比较两个日期(字符串)的python函数的帮助,如果date1比date2小,则返回True。 这是我的代码,但我不知道为什么测试用例返回“ True”(“ 2013/10/24”,“ 2013/9/24”)
# str, str -> boolean
def dateLessThan(date1,date2):
date1 = date1.split('/')
date2 = date2.split('/')
if date1[0] < date2[0]:
return True
elif date1[0] == date2[0] and date1[1] < date2[1]:
return True
elif date1[0] == date2[0] and date1[1] == date2[1] and date1[2] < date2[2]:
return True
else:
return False
只需使用datetime.strptime
类方法即可,而不是自己进行解析。
def dateLessThan(date1,date2):
date1 = datetime.datetime.strptime(date1, "%Y/%m/%d")
date2 = datetime.datetime.strptime(date2, "%Y/%m/%d")
return date1 < date2
您的测试由于字符串的字典比较而失败。 "10" < "9"
。
无需使用datetime
time
或time
解析(当使用复杂的格式,月份名称时,这是必需的),可以做一些简单的事情,因为只涉及数字(并且您有年/月/日,所以您接近ISO日期格式,您可以按字典顺序进行比较)。
只需将值映射为整数并转换为列表,然后让列表的自然/字典顺序执行其余操作即可:
def dateLessThan(date1,date2):
return [int(x) for x in date1.split('/')] < [int(x) for x in date2.split('/')]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.