feat(시간 표시): 화면 시각 = 보는 사람 PC 시간대 · 서버 응답 UTC Z · 서버가 만드는 파일 글 = 한국 시각 (PLAN 593-1 · 요구 456)
- 공용 `common_util_time.ts`(날짜 · 시각 · 오늘/어제/n 일 전 · Z 없는 옛 글 = UTC) · `common_util_time.py`(UTC Z 글 · 한국 시각) - 화면 바꿈: 대시보드(프로젝트 · 휴지통 · 시스템 로그 · 보관함 · 홈 카드) · B09 굳힘 · E03 · E05 · E07 · M02 호표 이력 · 목록 고친 날 · 지난 판 - 서버: 응답 datetime = UTC + Z(main.py) · 로컬 시각 저장 → UTC · 대시보드 경과일 = UTC 기준 · 엑셀 날짜 · 파일 이름 = 한국 시각 - 시험: test_593_time(서울 · 뉴욕 · Z 없는 옛 글 · 서버 글) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -15,7 +15,6 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import base64
|
||||
import datetime
|
||||
import http.cookiejar
|
||||
import json
|
||||
import logging
|
||||
@@ -27,6 +26,7 @@ import urllib.request
|
||||
import zipfile
|
||||
from pathlib import Path
|
||||
|
||||
from common_util.common_util_time import kst_today
|
||||
from config.config_system import (
|
||||
MAP_SHEETS_DIRNAME,
|
||||
MAP_SHEETS_INDEX_FILENAME,
|
||||
@@ -305,7 +305,7 @@ def ingest_zip(store_dir: str | Path, src_path: str | Path, sheet_no: str | None
|
||||
"original_name": src.name,
|
||||
"crs": crs,
|
||||
"bounds_wgs84": [round(v, 8) for v in bounds],
|
||||
"acquired": datetime.date.today().isoformat(),
|
||||
"acquired": kst_today().isoformat(),
|
||||
"source": "수동 다운로드 인제스트",
|
||||
}
|
||||
_save_index(store, index)
|
||||
|
||||
@@ -15,7 +15,6 @@ from __future__ import annotations
|
||||
import json
|
||||
import logging
|
||||
from collections.abc import Sequence
|
||||
from datetime import datetime
|
||||
from pathlib import Path
|
||||
from typing import Any, Callable
|
||||
|
||||
@@ -23,6 +22,7 @@ import numpy as np
|
||||
from shapely.geometry.base import BaseGeometry
|
||||
|
||||
from common_util.common_util_storage import resolve_stored_project_path
|
||||
from common_util.common_util_time import utc_now_text
|
||||
from config.config_system import DRAINAGE_CACHE_DIRNAME
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
@@ -181,7 +181,7 @@ def _update_manifest(
|
||||
logger.warning("배수유역: manifest를 읽지 못해 새로 만듭니다 (%s).", manifest_path)
|
||||
manifest[stage] = {
|
||||
"file": filename,
|
||||
"saved_at": datetime.now().isoformat(timespec="seconds"),
|
||||
"saved_at": utc_now_text(),
|
||||
"properties": properties,
|
||||
}
|
||||
try:
|
||||
|
||||
@@ -12,6 +12,8 @@ from uuid import UUID
|
||||
|
||||
import aiomysql
|
||||
|
||||
from common_util.common_util_time import utc_text
|
||||
|
||||
_STAGE_ROOT = "B04_PreProcess"
|
||||
|
||||
|
||||
@@ -224,7 +226,7 @@ async def list_project_point_cloud_inputs(
|
||||
"file_size_mb": float(row[4]) if row[4] is not None else None,
|
||||
"crs_epsg": row[5],
|
||||
"status": row[6],
|
||||
"created_at": row[7].isoformat() if row[7] else None,
|
||||
"created_at": utc_text(row[7]),
|
||||
}
|
||||
for row in rows
|
||||
]
|
||||
@@ -279,7 +281,7 @@ async def list_surface_models(
|
||||
"resolution_m": row[3],
|
||||
"model_file_path": row[4],
|
||||
"generation_params": generation_params,
|
||||
"created_at": row[6].isoformat() if row[6] else None,
|
||||
"created_at": utc_text(row[6]),
|
||||
}
|
||||
)
|
||||
return models
|
||||
|
||||
Reference in New Issue
Block a user