如何在Python中检查日期输入是否包含天数?

问题描述 投票:0回答:1

我正在编写一个 Python 代码块,该代码块旨在测试输入以确定它们是否是数字、时间戳、自由文本等。为了检测日期,它使用 dateutil 解析器,然后检查解析是否成功或抛出异常。

但是,dateutil 解析器过于宽容,会将各种值转换为日期对象,例如时间范围,例如“12:00-16:00”,转换为当天的时间戳,例如“2023-08” -22T12:00-16:00”(这甚至不是有效的时区偏移量)。

我们只想将输入视为日期,如果它们实际上具有日-月-年组成部分,而不是仅仅小时和分钟 - 但我们仍然希望接受各种日期格式,yyyy-MM-ddThh:mm :ss 或 dd/MM/yyyy 或输入使用的任何内容。是否有另一个更适合于此的库,或者某种使 dateutil 更严格的方法?

python parsing python-dateutil
1个回答
0
投票

Python的re模块怎么样?您可以使用正则表达式检查字符串以确定该字符串是否是有效的日期/日期时间数据,然后您可以使用 dateutil 模块。

例如,以下代码片段将确定输入字符串是否具有正确的日期模式。

import re

def check_date(text)
   date_regex = re.compile(r"(/d{4}-/d{2}-/d{2}") # for "yyyy-mm-dd" pattern
   if re.search(data_regx, text):
      return True
   else:
      return False

现在,根据函数的返回,您可以使用 dateutil 或 datetime 模块将字符串解析为日期/日期时间对象。

© www.soinside.com 2019 - 2024. All rights reserved.