在python中识别日期格式

时间:2019-02-21 12:05:26

标签: python

如何获取python中给定日期输入的日期格式?    注意:    输入是由用户提供的,不是预定义的格式。    给出任何一种输入格式..    下面的示例适用于dd-mm-yyyy格式,但这不在    我的情况。日期格式未预定义。    datetime.datetime.strptime('24052010',“%d%m%Y”)。date()

预期:

输入1:21–02–2019,输出:DD-MM-YYYY。    输入2:02/21/2019,输出:MM / DD / YYYY

预先感谢

2 个答案:

答案 0 :(得分:1)

我认为无法执行此功能,因为某些日期(例如01/01/2019)无法用一种方式解释。这可以是MM/DD/YYYYDD/MM/YYYY。因此,您只能检查日期是否采用这种格式(您可以使用以下问题的答案:How do I validate a date string format in python?)。

答案 1 :(得分:1)

您可以使用模块dateutil。它具有一个强大的解析器,它将尝试理解任何日期。

>>> from dateutil import parser
>>> parser.parse("21-02-2019")
datetime.datetime(2019, 2, 21, 0, 0)
>>> parser.parse("02/21/2019")
datetime.datetime(2019, 2, 21, 0, 0)

这不是您想要的:日期不是格式。但是,如果您有日期,您真的需要格式吗?

要满足J Kluseczka关于某些日期模棱两可的观点(例如“ 01/10/2019”),您可以指定假设:

>>> parser.parse("01/10/2019")
datetime.datetime(2019, 1, 10, 0, 0)
>>> parser.parse("01/10/2019",dayfirst=True)
datetime.datetime(2019, 10, 1, 0, 0)

dateutil不是标准库的一部分,但值得下载。