Разбор неполной даты с dateutil.parse - PullRequest
0 голосов
/ 04 декабря 2018

Есть ли способ анализа неполных дат с использованием библиотеки dateutil без получения текущей даты или установки даты по умолчанию?

dt = parser.parse(search, dayfirst=True).date()

Например, при разборе 10/02 будет возвращено dt.month = 02и dt.day = 10. Есть ли способ вернуть его dt.year = Нет или подобное?Или заранее проверить, что указанная дата не содержит года?

1 Ответ

0 голосов
/ 04 декабря 2018

... без получения текущей даты или установки даты по умолчанию?

Я предполагаю, что вы имеете в виду без получения текущей год .Ответ: нет, это невозможно.Значения datetime.datetime и datetime.date должны включать год целых чисел.Это не подлежит обсуждению.

Вы, конечно, можете указать год в своем вводе или изменить его впоследствии:

from dateutil import parser

search = '10/02'
dt1 = parser.parse(search, dayfirst=True).date()            # datetime.date(2018, 2, 10)
dt2 = parser.parse(search + '/2017', dayfirst=True).date()  # datetime.date(2017, 2, 10)
dt1 = dt1.replace(year=2016)                                # datetime.date(2016, 2, 10)

Или заранее проверить, что указана датане содержит год?

Я не верю, что есть какая-либо функциональность, чтобы проверить, указали ли вы год в строке.Возможно, вам придется написать пользовательские тесты для этого.parser.parse будет работать с тем, что у вас есть, и попытаться заполнить все пробелы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...