将以“ th”格式格式化的日期转换为日期时间以进行日期比较?

时间:2019-05-19 02:24:09

标签: python date datetime python-dateutil

我知道已经以某种形式询问了此问题,但我想知道如何转换日期,例如:

Saturday, May 18th, 2019

2019-05-18之类的东西,以便我可以将其与其他日期进行比较。我知道dateutil可以做到,但是不幸的是,我使用的是Pycharm,如果不将python从2.7升级到3,它不会让我安装该软件包。有没有办法在Python中简单地做到这一点?

2 个答案:

答案 0 :(得分:1)

您也可以将datetimere模块一起使用:

>>> from datetime import datetime
>>> import re
>>> s = 'Saturday, May 18th, 2019'
>>> datetime.strptime(re.sub('(\d+)(st|nd|rd|th)', '\g<1>', s), '%A, %B %d, %Y')
datetime.datetime(2019, 5, 18, 0, 0)
>>> 

打印得更好:

>>> print(datetime.strptime(re.sub('(\d+)(st|nd|rd|th)', '\g<1>', s), '%A, %B %d, %Y'))
2019-05-18 00:00:00
>>> 

答案 1 :(得分:0)

The regex solution is preferable in my opinion,但是对于不熟悉正则表达式的人来说,这是不使用re的解决方案:

from datetime import datetime

s = 'Saturday, May 18th, 2019'
sl = s.split()
sl[2] = sl[2][:-3] # remove 'th,'
datetime.strptime(' '.join(sl), '%A, %B %d %Y')