Скорее всего это из-за того, что он воспринимает ваше время, как время UTC, а не как время в вашем часовом поясе. Например, если ваше время UTC+3 (московское время), и вы пишите
datetime.time(hour=12, minute=50, second=0)
, то на самом деле это будет 15:50 по МСК. Т. е. для решения этой проблемы, я думаю, нужно или вычитать из времени сколько-то часов (в данном случае 3) или конвертировать местное время в UTC:
from datetime import datetime
import pytz
local = pytz.timezone("Europe/Moscow")
naive = datetime.strptime("2024-12-4 12:50:00", "%Y-%m-%d %H:%M:%S")
local_dt = local.localize(naive, is_dst=None)
utc_dt = local_dt.astimezone(pytz.utc)