2015-10-09 12 views
0

Я хочу, чтобы преобразовать следующую строку дату в Python, как идти об этом,питона получить и преобразовать дату из строки

>>> d= "1997-01-29 00:00:00+00:00" 
>>> import datetime 
>>> datetime.datetime.strptime(d, '%Y-%m-%d').date() 
Traceback (most recent call last): 
File "<stdin>", line 1, in <module> 
File "/usr/lib/python2.7/_strptime.py", line 328, in _strptime 
data_string[found.end():]) 
ValueError: unconverted data remains: 00:00:00+00:00 
+0

Либо нарезать на вход, или использовать формат, который на самом деле представляет * данные вы разбираете *. – jonrsharpe

+0

Какая версия python? – sbarber2

+0

python strptime не понравится двоеточие в смещенной части часового пояса. Посмотрите на [Преобразование строки в объект datetime в python] (http://stackoverflow.com/questions/2609259/converting-string-to-datetime-object-in-python) – sbarber2

ответ

0

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

Вы предоставили это:

d = "1997-01-29 00:00:00+00:00" 

Вы пытаетесь конвертировать на основе этой модели:

'%Y-%m-%d' 

Ошибка с указанием:

ValueError: unconverted data remains: 00:00:00+00:00 

Таким образом, вы должны просто отмените эту часть времени на основе того, как вы конвертируете. Я просто изменил вашу строку на это, и она работала:

>>> d= "1997-01-29" 
>>> datetime.datetime.strptime(d, '%Y-%m-%d').date() 
datetime.date(1997, 1, 29) 
0
d= "1997-01-29 00:00:00" 
import datetime 
print datetime.datetime.strptime(d, "%Y-%m-%d %H:%M:%S") 
+0

Не могли бы вы добавить какое-то объяснение, пожалуйста? –

Смежные вопросы