Конвертировать дату в формате 'th' в datetime для сравнения дат? - PullRequest
1 голос
/ 19 мая 2019

Я знаю, что это было задано в той или иной форме, но мне интересно, как преобразовать дату, такую ​​как:

Saturday, May 18th, 2019

, во что-то вроде 2019-05-18, чтобы я мог сравнить ее сдругие даты.Я понимаю, что dateutil может это сделать, но, к сожалению, я использую Pycharm, и он не позволит мне установить этот пакет без обновления Python с 2.7 до 3. Есть ли способ сделать это просто в Python?

Ответы [ 2 ]

1 голос
/ 19 мая 2019

Вы также можете использовать datetime с re модулем:

>>> 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
>>> 
0 голосов
/ 19 мая 2019

На мой взгляд, предпочтительнее решение regex , но это решение без использования 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')
...