#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
объекты содержат ненулевые микросекунды.