Синтаксический анализ строки ISO по дате

#python #django

#python #django

Вопрос:

Я пытаюсь проанализировать

2020-09-18T16:11:03.4411565 00:00

Код

 from dateutil import parser
parser.isoparse('2020-09-18T16:11:03.4411565 00:00')
  

Я получаю

Ошибка значения: неиспользуемые компоненты в строке ISO

Также я использую 3.6.9, поэтому я не могу использовать datetime.fromisoformat(date_string) , что я могу сделать?

Комментарии:

1. если вы можете сделать это с помощью pandas, тогда pd.to_datetime([‘2020-09-18T16:11:03.4411565 00:00’], infer_datetime_format=True) может помочь?

Ответ №1:

Использовать parser.parse(...) функцию

 In [1]: from dateutil import parser                                                                                                                                                                                

In [2]: dt_str = '2020-09-18T16:11:03.4411565 00:00'                                                                                                                                                               

In [3]: parser.parse(dt_str)                                                                                                                                                                                       
Out[3]: datetime.datetime(2020, 9, 18, 16, 11, 3, 441156, tzinfo=tzutc())
  

Ответ №2:

формат iso принимает 6 цифр после ‘.’ (usec). У вас есть 7.

Измените вашу строку на ‘2020-09-18T16:11:03.441156 00:00’

Комментарии:

1. Это работает в моем случае 2021-05-10T00:00:00-01:30 , но это не так 2021-05-10T00:00:00 01:30 . Почему это так?