确定字符串可以是日期时间对象

时间:2015-06-22 06:29:48

标签: python regex algorithm python-2.7 datetime

如果我知道字符串表示日期时间信息的格式,那么我可以轻松使用datetime.datetime.strptime(s, fmt)。但是,如果不事先知道字符串的格式,是否可以确定给定的字符串是否包含可以使用正确的格式字符串解析为日期时间对象的内容?

显然,生成每个可能的格式字符串来进行详尽的搜索并不是一个可行的想法。我也不想写一个功能,其中许多格式字符串都是硬编码的 有没有人对如何实现这一点有任何想法(也许某种正则表达式?)?

2 个答案:

答案 0 :(得分:2)

fuzzyparsers

怎么样?

示例输入:

jan 12, 2003
jan 5
2004-3-5
+34 -- 34 days in the future (relative to todays date)
-4 -- 4 days in the past (relative to todays date)

使用示例:

>>> from fuzzyparsers import parse_date
>>> parse_date('jun 17 2010') # my youngest son's birthday
datetime.date(2010, 6, 17)

安装时:

$ pip install fuzzyparsers

答案 1 :(得分:2)

您可以使用dateutil

中的parser

使用示例:

from dateutil import parser
dt = parser.parse("Aug 28 1999 12:00AM")