"""timeutil — 애플리케이션 전역 시각 기준. [2026-09-23] DB 타임스탬프가 UTC/KST 로 섞여 있었다. - 모델 기본값(`default=datetime.utcnow`)으로 저장된 행 → UTC - `_get_kst_now()` 를 명시한 경로(수동 매매 등) → KST 같은 테이블 안에서 9시간 차이가 나 화면의 매매 시각이 뒤죽박죽이었고, `now_kst()` 로 만든 조회 구간과 비교하는 로직도 9시간씩 어긋났다 (예: 추가매수 쿨다운이 항상 발동). 국내 증시만 다루고 모든 비교가 KST 거래일 기준이므로 **KST naive** 로 통일한다. """ from datetime import date, datetime import pytz KST = pytz.timezone("Asia/Seoul") def now_kst() -> datetime: """현재 한국 시간 (timezone-naive) — DB 저장·비교의 유일한 기준.""" return datetime.now(KST).replace(tzinfo=None) def today_kst() -> date: """오늘 날짜 (KST).""" return now_kst().date()