Извлекать время из объекта datetime и сравнивать со строковым временем

#python

#python

Вопрос:

В python у меня есть объект datetime в python с этим форматом.

 datetime_object = datetime.strptime(date_time_str, '%Y-%m-%d %H:%M:%S')
 

В других классах я использую этот объект. Когда я достигаю этого объекта, я хочу извлечь из него время и сравнить время строки.
Как показано ниже;

  if "01:15:13" == time_from_datetime_object 
 

Как я могу это сделать?

Комментарии:

1. Почему бы не преобразовать вашу строку также в объект datetime?

Ответ №1:

Вам нужно использовать метод strftime:

 from datetime import datetime
date_time_str = '2021-01-15 01:15:13'

datetime_object = datetime.strptime(date_time_str, '%Y-%m-%d %H:%M:%S')
if "01:15:13" == datetime_object.strftime('%H:%M:%S'):
    print("match")
 

Комментарии:

1. Ваш ответ правильный. Спасибо за ответ. Если вам нравится вопрос, не стесняйтесь голосовать 🙂

Ответ №2:

Если вы хотите сравнить его как строку:

  if "01:15:13" == datetime_object.strftime('%H:%M:%S'):
 

Ответ №3:

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

 from datetime import time

if datetime_object.time() == time(1, 15, 13):
    ...
 

Возможно, вам придется быть осторожным с микросекундами, поэтому в какой-то момент вы можете захотеть это сделать datetime_object = datetime_object.replace(microsecond=0) , если ваши datetime объекты содержат ненулевые микросекунды.