Python库用于从给定的字符串中提取日期格式

13 浏览
0 Comments

Python库用于从给定的字符串中提取日期格式

我们有Python的datetime库,可以使用以下方法将字符串日期转换为指定格式的日期类型:\ndatetime.strptime(\"2016-12-21\", \"%Y-%m-%d\")\n但是,我们是否有任何库可以根据日期字符串推断日期的格式。\n例如:\n给定输入:

2016-12-21

\n输出:

%Y-%m-%d

0
0 Comments

近期,有用户询问是否存在提取给定字符串中日期格式的Python库。尽管没有直接的库可以实现这个功能,但编写一个函数来返回与给定字符串匹配的日期格式并不难。然而,这种方法无法解决一个字符串匹配多个日期格式的问题。下面是一个示例,展示了一些基于数字的日期常见格式:

date_formats = ["%Y-%m-%d", "%d-%m-%Y", "%m-%d-%Y", "%Y/%m/%d", "%d/%m/%Y", "%m/%d/%Y", "%Y.%m.%d", "%d.%m.%Y", "%m.%d.%Y", "%c", "%x"]
def string_to_date(str):
    match = []
    for fmt in date_formats:
        try:
            datetime.strptime(str, fmt)
        except ValueError as e:
            print(e)
            continue
        match.append(fmt)
    return match

下面是一些示例输出:

print(string_to_date("11.12.2015"))  # ['%d.%m.%Y', '%m.%d.%Y']
print(string_to_date("21/12/2015"))  # ['%d/%m/%Y']

当然,你也可以编写代码来动态构建日期格式,不过这样的话可能会变得过于复杂。如果你选择动态方法,我建议先在脚本中找到可能的分隔符,然后再尝试构建日期格式。

0