2015-07-09 7 views
-2

Мне было интересно, как я могу рассчитать разницу во времени между двумя временами, к которой, к примеру, относятся PM и AM. У меня есть 12:16:44 вечера и 01:01:45 вечера, но когда я использую этот код:Как найти разницу между двумя временами в python в формате?

from datetime import datetime 
from datetime import timedelta 

s1=12:16:44 
s2=01:01:45 
FMT = '%H:%M:%S' 
tdelta = datetime.strptime(s2), FMT) - datetime.strptime(s1), FMT) 
if tdelta.days < 0: 
    tdelta = timedelta(days=0, 
         seconds=tdelta.seconds, 
         microseconds=tdelta.microseconds) 

, но это выход я получаю 12:16:44 | 01:01:45 | Time Difference: -1 day, 12:45:01 но они оба значения PM? Спасибо

+0

принять во внимание изменения, можно UTC офсетных например, из-за перехода на летнее время переходов, см. [Найти, прошло ли 24 часа между датами - Python] (http://stackoverflow.com/a/26313848/4279) – jfs

ответ

1

В Python% H означает 24-часовой формат времени. % I является 12-часовой формат и даже тогда вы должны указать PM в строке

Попробуйте сделать это (и исправить ошибки синтаксиса):

s1='12:16:44 PM' 
s2='01:01:45 PM' 
FMT = '%I:%M:%S %p' 
+0

Ваш код фактически недействителен. строки должны быть разминированы кавычками. Подробнее о формате строки проверьте https://docs.python.org/2/library/time.html –

+0

Итак, как бы я это сделал? –

+0

s1 = '12: 16: 44 PM ' s2 = '01: 01: 45 PM' FMT = '% I:% M:% S% p' –

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