Парсер dateutil для формата месяц / год: возвращение начала месяца - PullRequest
0 голосов
/ 30 декабря 2018

Когда я анализирую даты, я использую метод parser.parse, который автоматически распознает все виды синтаксисов из необработанного текста.Моя проблема возникает, когда у меня есть строки типа «10/2018» без информации о номере дня.Парсер по умолчанию возвращает объект datetime в последний день месяца (здесь 30-й);я хотел бы изменить это поведение, чтобы оно возвращало первый день месяца (например: datetime(2018, 10, 1, 0, 0)).Как мне этого добиться?

from dateutil import parser
mystring = ["10/2018", "05/10/2018", "Oct, 2018"]
[parser.parse(i) for i in mystring]
#### Out[5] [datetime.datetime(2018, 10, 30, 0, 0), datetime.datetime(2018, 5, 10, 0, 0), datetime.datetime(2018, 10, 30, 0, 0)]

Спасибо,

1 Ответ

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

Быстрый просмотр документов (https://dateutil.readthedocs.io/en/stable/parser.html) показывает, что parse() по умолчанию - последний месяц, если не указан объект даты и времени по умолчанию:

from datetime import datetime
from dateutil import parser

mystring = ["10/2018", "05/10/2018", "Oct, 2018"]
[parser.parse(i, default=datetime(1978, 1, 1, 0, 0)) for i in mystring]

# [datetime.datetime(2018, 10, 1, 0, 0), datetime.datetime(2018, 5, 10, 0, 0), datetime.datetime(2018, 10, 1, 0, 0)]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...