2016-10-03 2 views
1

Я пытаюсь написать скрипт python, который будет сравнивать даты с двух разных страниц. Формат даты на одной странице - 03 октября 2016 года, тогда как на другой странице (10/3/2016). Моя цель - сравнить эти две даты. Я смог конвертировать Oct в 10, но не знаю, как сделать это 10/3/2016.Split and Combine Date

ответ

3

Используйте datetime модуль для преобразования строки в datetime объекта, а затем сравнить оба. Например:

>>> from datetime import datetime 
>>> date1 = datetime.strptime('Oct 03 2016', '%b %d %Y') 
>>> date2 = datetime.strptime('10/3/2016', '%m/%d/%Y') 
>>> date1 == date2 
True 

Кроме того, вы можете преобразовать этот datetime объект в пользовательский формат, используя datetime.strftime() как:

>>> date1.strftime('%d * %B * %Y') 
'03 * October * 2016' 

Список всех директив, используемых для форматирования строки доступны в strftime ссылке I упомянутое выше.

+0

@Quadri Я пытаюсь использовать ваш ответ, но получаю сообщение об ошибке «TypeError: должен быть строкой, а не списком». Что мне делать? Я пытаюсь использовать переменную вместо даты ** date1 = datetime.strptime (date, '% b% d% Y') ** – user18160

+0

Значение, которое нужно передать как 'date', должно быть из' str', но на основе ошибки, которую вы получаете, вы передаете объект типа 'list'. –

+0

Точно, как я могу это сделать? Я имею в виду, что я хочу что-то вроде этого: date = = 07 октября 2016 date1 = datetime.strptime (date, '% b% d% Y') ** – user18160

6

Для этого вам действительно нужна библиотека dateutil.

>>> import dateutil.parser 
>>> first_date = dateutil.parser.parse('Oct 03 2016') 
>>> second_date = dateutil.parser.parse('10/3/2016') 
>>> first_date 
datetime.datetime(2016, 10, 3, 0, 0) 
>>> second_date 
datetime.datetime(2016, 10, 3, 0, 0) 
>>> first_date == second_date 
True 
>>> 
+0

дата импортаtut показывает ошибку для меня. – user18160

+0

Да. Вам необходимо установить его. –

+1

@MoinuddinQuadri возглашает. Да, это должно быть 'import dateutil.parser'. Я обычно перепечатываю все в оболочке, когда играю с ним, поэтому могу легко скопировать и вставить ответ. –