Python dateutil.parser.parse parses month first, not day
我正在使用
我有一个包含
1 | dateutil.parser.parse("05.01.2015") |
它返回:
1 | datetime.datetime(2015, 5, 1, 0, 0) |
我希望它会返回
如何告诉代码格式为
为了记录,
指定
1 2 | >>> dateutil.parser.parse("05.01.2015", dayfirst=True) datetime.datetime(2015, 1, 5, 0, 0) |
在日期格式不明确的情况下(例如,当日期为12或更低时),这优先于DD-MM-YYYY格式而不是MM-DD-YYYY。 该功能在此处记录。
您问:"我如何告诉代码格式为dd.mm.yyyy?"
因为您已经导入了
1 2 | >>> dateutil.parser.datetime.datetime.strptime(date_string, '%d.%m.%Y') datetime.datetime(2015, 1, 5, 0, 0) |
我们可以看到代码中嵌入了一个明显的替代方案。 您可以直接使用它。
1 2 3 | >>> from datetime import datetime >>> datetime.strptime(date_string, '%d.%m.%Y') datetime.datetime(2015, 1, 5, 0, 0) |
也有一些较新的替代库提供大量的方法和属性。
在这种情况下最简单使用的是
1 2 3 | >>> import arrow >>> arrow.get(date_string, 'DD.MM.YYYY') <Arrow [2015-01-05T00:00:00+00:00]> |
尽管我发现箭头的格式更容易记住,但摆锤使用Python的旧格式系统,这可能使您不必学习箭头的格式。
1 2 3 | >>> import pendulum >>> pendulum.datetime.strptime(date_string, '%d.%m.%Y') <Pendulum [2015-01-05T00:00:00+00:00]> |