преобразование недостающей строки смещения знака плюс в дату и время в надлежащую дату и время - PullRequest
1 голос
/ 25 марта 2020

В основном я получаю строку даты и времени в этом формате d_string = '2019-03-25 15:30:00+00:00', и я могу преобразовать ее в правильное время с помощью

date_converted = datetime.strptime(d_string , '%Y-%m-%d %H:%M:%S%z')

Но иногда я получаю строку даты, подобную этой '2019-03-25 15:30:00 00:00' там, где ее нет plus знак больше. Как я могу проверить этот тип строки даты в правильном формате datetime? Я всегда мог добавить знак плюс с последней 4-й позиции в строке даты и выполнить проверку, но это не выглядит лучшим решением.

Есть ли лучший способ?

1 Ответ

2 голосов
/ 25 марта 2020

Если вы хотите использовать 00:00 в конце, вы можете добавить + для соответствия требуемому шаблону, вот как вы можете это сделать

if re.fullmatch(r"[\d-]{10} [\d:]{8} [\d:]{5}", value):
    value = re.sub(r"(?<=[\d:]{8})( )(?=[\d:]{5})", "+", value)

Дача

values = ['2019-03-25 15:30:00+00:00', '2019-03-25 15:30:00 00:00']
for value in values:
    if re.fullmatch(r"[\d-]{10} [\d:]{8} [\d:]{5}", value):
        value = re.sub(r"(?<=[\d:]{8})( )(?=[\d:]{5})", "+", value)
    date_converted = datetime.strptime(value, '%Y-%m-%d %H:%M:%S%z')
    print(date_converted)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...