fix: timestamp fallback에서 UTC→KST 변환 추가

Codex 리뷰 지적: timestamp fallback 분기에서 UTC aware 값을
replace(tzinfo=None)로 tz만 제거하면 KST time_bucket과 9시간 어긋남.
astimezone(KST) 후 tz 제거하도록 수정.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
htlee 2026-04-02 07:05:15 +09:00
부모 d15039ce18
커밋 b8b60bf314

파일 보기

@ -1,8 +1,11 @@
import logging import logging
from datetime import datetime, timezone from datetime import datetime, timezone
from typing import Optional from typing import Optional
from zoneinfo import ZoneInfo
import numpy as np import numpy as np
_KST = ZoneInfo('Asia/Seoul')
import pandas as pd import pandas as pd
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
@ -126,8 +129,9 @@ class VesselStore:
max_ts = pd.to_datetime(df_all['timestamp'].dropna()).max() max_ts = pd.to_datetime(df_all['timestamp'].dropna()).max()
if hasattr(max_ts, 'to_pydatetime'): if hasattr(max_ts, 'to_pydatetime'):
max_ts = max_ts.to_pydatetime() max_ts = max_ts.to_pydatetime()
# timestamp는 UTC aware → KST wall-clock naive로 변환
if isinstance(max_ts, datetime) and max_ts.tzinfo is not None: if isinstance(max_ts, datetime) and max_ts.tzinfo is not None:
max_ts = max_ts.replace(tzinfo=None) max_ts = max_ts.astimezone(_KST).replace(tzinfo=None)
self._last_bucket = max_ts self._last_bucket = max_ts
vessel_count = len(self._tracks) vessel_count = len(self._tracks)