forked from erp-dev/erp
24 lines
647 B
Python
24 lines
647 B
Python
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)
|