2015-02-05 2 views
1

Я использую модуль datetime для создания объектов datetime из двух входных строк.Почему разница в датах в Python возвращает неверное значение?

Я пытаюсь просто вычислить разницу во времени между 1:00 вечера и 10:00 утра, который должен быть на 3 часа, а не 15 часов, так как я получаю ниже.

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

In [29]: time1 = datetime.datetime.strptime('10:00AM', '%H:%M%p') 

In [30]: time2 = datetime.datetime.strptime('1:00PM', '%H:%M%p') 

In [31]: print time2 - time1 
-1 day, 15:00:00 

Спасибо

ответ

4

печати соответствующего DateTimes разгадки. Вам нужен правильный форматтер с AM/PM.

>>> time1 = datetime.datetime.strptime("10:00AM", "%I:%M%p") 
>>> time2 = datetime.datetime.strptime('1:00PM', '%I:%M%p') 
>>> print time2 - time1 
3:00:00 
+2

Чтобы уточнить, '% H' выполняет 24-часовое преобразование часов, в то время как'% I' использует 12-часовые часы. –

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