Вы можете сначала разобрать даты, чтобы гарантировать:
import dateutil as du
start_date = du.parser.parse('2017-01-01', dayfirst=False)
end_date = du.parser.parse('2017-12-31', dayfirst=False)
Параметр dayfirst означает:
- Следует ли интерпретировать первое значение в неоднозначной трехзначной дате (например, 01/05/09) как день (True) или месяц (False). Если yearfirst установлен в True, это различает YDM и YMD. По умолчанию установлено значение False.
В этом случае было необязательным, потому что по умолчанию установлено значение False, но только для того, чтобы показать вам, что вы можете различать YDM и YMD.
Вот документы о: ссылка