from datetime import datetime from zoneinfo import ZoneInfo from tzlocal import get_localzone def fix_datetime(naive_time: datetime, target_tz=ZoneInfo("Asia/Shanghai")): if not naive_time: return None local_tz = get_localzone() aware_local = naive_time.replace(tzinfo=local_tz) return aware_local.astimezone(target_tz).strftime("%Y-%m-%d %H:%M:%S") def time_diff(time1: datetime, time2: datetime): t_diff = time2 - time1 days = t_diff.days hours = t_diff.seconds // 3600 minutes = (t_diff.seconds % 3600) // 60 seconds = t_diff.seconds % 60 return f"{days} d {hours} h {minutes} m {seconds} s"