Преобразование строки в объект datetime в python - PullRequest
2 голосов
/ 04 сентября 2011

У меня есть строковое поле, подобное этому ..

2011-09-04 23:44:30.801000

, и теперь мне нужно преобразовать его в объект datetime в python, чтобы я мог вычислить разницу между двумя объектами datetime.

Ответы [ 4 ]

7 голосов
/ 04 сентября 2011

Вы должны использовать datetime.datetime.strptime(), который преобразует формат строки и даты в datetime.datetime объект.

Поля формата (например, %Y обозначает четырехзначный год) указаны в документации Python .

>>> import datetime
>>> s      = '2011-09-04 23:44:30.801000'
>>> format = '%Y-%m-%d %H:%M:%S.%f'
>>> date=datetime.datetime.strptime(s, format)
>>> date
datetime.datetime(2011, 9, 4, 23, 44, 30, 801000)
4 голосов
/ 04 сентября 2011

Альтернативой datetime.datetime.strptime может быть python-dateutil libray.dateutil позволит вам сделать то же самое без явного шага форматирования:

>>> from dateutil import parser
>>> date_obj = parser.parse('2011-09-04 23:44:30.801000')
>>> date
datetime.datetime(2011, 9, 4, 23, 44, 30, 801000)

Это не стандартный библиотечный модуль, но он очень удобен для анализа строк даты и времени, особенно если вы неУ них нет контроля над форматом, в который они входят.

Одно предупреждение, если вы устанавливаете эту библиотеку: версия 1.5 предназначена для Python 2, а версия 2.0 - для Python 3.easy_install и pip по умолчанию устанавливают версию 2.0, поэтому вы должны явно указать python-dateutil==1.5, если вы используете Python 2.

0 голосов
/ 04 мая 2012
# date string to datetime object
date_str = "2008-11-10 17:53:59"
dt_obj = datetime.strptime(date_str, "%Y-%m-%d %H:%M:%S")
print repr(dt_obj)
0 голосов
/ 04 сентября 2011

Использовать datetime.datetime.strptime .

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