如何获取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
预先感谢
答案 0 :(得分:1)
我认为无法执行此功能,因为某些日期(例如01/01/2019
)无法用一种方式解释。这可以是MM/DD/YYYY
和DD/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
不是标准库的一部分,但值得下载。