from datetime import datetime from django.utils import timezone def parse_external_china_datetime(value: str | None): """外部 records 的时间字符串业务上是中国时间,即使误带 Z 也按本地时间解释。""" if not value: return None text = str(value).strip() if not text: return None normalized = text[:-1] if text.endswith('Z') else text try: dt = datetime.fromisoformat(normalized) except ValueError: return None tz = timezone.get_current_timezone() if timezone.is_aware(dt): dt = dt.replace(tzinfo=None) return timezone.make_aware(dt, tz)