如何用Python检查电脑日期格式?按指定格式输出对应数字
Python日期格式检查解决方案
问题分析
你之前使用dateutil.parser的方案无法区分dd/mm/yyyy和mm/dd/yyyy这两种格式——因为该模块会自动根据系统设置或日期数值歧义性选择解析方式,无法精准判断用户输入的原始格式类型,自然无法输出对应的1或2。
正确实现代码
我们可以通过datetime.strptime明确尝试匹配两种格式,同时处理两种格式都能匹配的歧义场景:
from datetime import datetime def check_date_format(date_str): # 尝试匹配 dd/mm/yyyy 格式 try: datetime.strptime(date_str, "%d/%m/%Y") # 检查是否也能匹配 mm/dd/yyyy(处理歧义情况) try: datetime.strptime(date_str, "%m/%d/%Y") return "Ambiguous: date could be either dd/mm/yyyy or mm/dd/yyyy" except ValueError: return 1 except ValueError: # 尝试匹配 mm/dd/yyyy 格式 try: datetime.strptime(date_str, "%m/%d/%Y") return 2 except ValueError: return "Invalid date format" # 运行测试 input_date = input("Enter the date: ") result = check_date_format(input_date) print(result)
代码说明
strptime是严格按照指定格式解析日期的方法,不会自动猜测格式- 先尝试匹配
dd/mm/yyyy,若成功则进一步检查是否也能匹配mm/dd/yyyy(比如03/04/2024这类日和月都≤12的日期),避免误判 - 仅能匹配
dd/mm/yyyy时返回1,仅能匹配mm/dd/yyyy时返回2,两种都匹配则提示歧义,都不匹配则提示格式无效
内容的提问来源于stack exchange,提问作者Thanh Nhan
相关产品推荐
相关产品推荐

