如何修改日期格式并比较?解决Python日期初始化语法错误
解决Python日期比较的语法错误问题
你的代码报错是因为datetime.datetime(27.01.2022)的写法完全不符合Python语法,Python会把27.01.2022理解为对浮点数27.01调用属性2022,这显然是无效的。datetime.datetime构造函数需要单独传入年、月、日三个整数参数,或者通过字符串解析生成日期对象,下面是两种正确的解决方式:
方法一:直接传入年、月、日参数
你的日期格式是日.月.年,拆分后给构造函数传参即可:
import datetime # 对应2022年1月27日 x = datetime.datetime(2022, 1, 27) # 对应2022年6月12日 y = datetime.datetime(2022, 6, 12) # 直接输出y > x的结果,符合需求 print(y > x)
方法二:用strptime解析日期字符串
如果日期是以字符串形式存储的,推荐用strptime方法,指定匹配的格式符%d.%m.%Y(%d代表两位日,%m代表两位月,%Y代表四位年):
import datetime x_str = "27.01.2022" y_str = "12.06.2022" x = datetime.datetime.strptime(x_str, "%d.%m.%Y") y = datetime.datetime.strptime(y_str, "%d.%m.%Y") print(y > x)
另外注意:你原来的代码里写的是if x>y: print('True'),这和你要求的“y > x时输出true”逻辑相反,直接打印y > x的结果更简洁,无需额外的if-else判断。
内容的提问来源于stack exchange,提问作者Trishna
相关产品推荐
相关产品推荐

