2015-06-08 3 views
-1

Я пытаюсь преобразовать 12h datetime в 24h datetime. Это мой код:python, ValueError при попытке конвертировать из 12h в 24h time

_dt = "05/08/2015 1:19 PM" 
dt12h = time.strptime(_dt, "%m/%d/%Y %I:%M %p") 
t2 = time.strftime('%d/%m/%y %H:%M:%S %z', dt12h) 
dt = datetime.strptime(t2, "%d/%m/%y %H:%M:%S") 

Но я получаю эту ошибку:

ValueError('unconverted data remains: ',)

Что я делаю неправильно?

+0

не 'dt12h = datetime.strptime (_dt, "% м /% г /% Y% I:% M% р")' сделать что ты хочешь? –

ответ

3

Вашего значение t2 имеет косое пространство, потому что %z пусто (нет часового пояса):

>>> from datetime import datetime 
>>> _dt = "05/08/2015 1:19 PM" 
>>> dt12h = time.strptime(_dt, "%m/%d/%Y %I:%M %p") 
>>> t2 = time.strftime('%d/%m/%y %H:%M:%S %z', dt12h) 
>>> t2 
'08/05/15 13:19:00 ' 

Вашего datetime.strptime() форматировщик не принимает это во внимание.

Нет необходимости разбирать, форматировать, а затем снова анализировать. Просто проанализируйте непосредственно с datetime.strptime() здесь; datetime вполне способен разборе времени на часах 12 часа:

>>> dt = datetime.strptime(_dt, "%m/%d/%Y %I:%M %p") 
>>> dt 
datetime.datetime(2015, 5, 8, 13, 19) 
+0

есть. Ты прав. Благодаря! – xpanta

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