在python中标识日期的格式

在python中标识日期的格式,python,Python,如何获取python中给定日期输入的日期格式? 注: 用户提供的输入不是预定义的格式。他们可能 给出任何类型的输入格式。。 下面的示例适用于dd-mm-yyyy格式。但这不适用于 我的案例。日期格式未预定义。 datetime.datetime.StrTime('24052010',%d%m%Y')。日期() 预期: 输入1:21-02-2019,输出:DD-MM-YYYY。 输入2:2019年2月21日,输出:年月日 提前感谢我认为这样的功能无法完成,因为某些日期(例如01/01/2019)无

如何获取python中给定日期输入的日期格式? 注: 用户提供的输入不是预定义的格式。他们可能 给出任何类型的输入格式。。 下面的示例适用于dd-mm-yyyy格式。但这不适用于 我的案例。日期格式未预定义。 datetime.datetime.StrTime('24052010',%d%m%Y')。日期()

预期:

输入1:21-02-2019,输出:DD-MM-YYYY。 输入2:2019年2月21日,输出:年月日


提前感谢

我认为这样的功能无法完成,因为某些日期(例如
01/01/2019
)无法以一种方式解释。这可以是
MM/DD/YYYY
DD/MM/YYYY
。因此,您只能检查日期是否为这种格式(您可以使用此问题的答案:)。

您可以使用模块
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关于某些日期不明确(如“2019年10月1日”)的观点,您可以指定您的假设:

>>> 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
不是标准库的一部分,但值得下载。
01-01-2019
DD-MM-YYYY或MM-DD-YYYY的格式是什么?格式不是预定义的。用户可以提供任何类型的格式。2019年2月2日的格式可能重复?没有问题。您可以使用左侧的这些按钮。我会很感激的,因为我正在努力获得一些声望点。我有静态日期格式的代码。我认为动态格式也会有一些功能。我有一个模式,它是日期格式的集合,如果我的输入与模式中的任何格式匹配,那么我将进一步处理匹配的日期。这就是为什么我要问日期格式!!!!如果您希望这样做,则对文件中包含集合中所有格式的前3或4个字符串调用
datetime.datetime.strtime()
,接受不会引发异常的第一个结果,并使用该格式处理文件的其余部分。虽然,我自己也做过,但我怀疑你会发现,任何一个输入文件中的日期并不像你明确预期的那样以一种格式一致。让我试着告诉你BoarGules!