From c54a2445b6285d06c0ce3afa1cd3aa6aecf6de94 Mon Sep 17 00:00:00 2001 From: joonhoekim <26rote@gmail.com> Date: Mon, 24 Nov 2025 20:13:50 +0900 Subject: (김준회) dolce rebuild: i18n 지원 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/dolce/utils/date-formatter.ts | 54 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 lib/dolce/utils/date-formatter.ts (limited to 'lib/dolce/utils/date-formatter.ts') diff --git a/lib/dolce/utils/date-formatter.ts b/lib/dolce/utils/date-formatter.ts new file mode 100644 index 00000000..83e78b0d --- /dev/null +++ b/lib/dolce/utils/date-formatter.ts @@ -0,0 +1,54 @@ +/** + * DOLCE 날짜 포맷팅 유틸리티 + * + * SWP의 날짜 포맷팅 함수를 재사용 + * 모든 날짜는 KST (Korea Standard Time, GMT+9) 타임존 + */ + +import { formatSwpDate } from "@/lib/swp/utils"; + +/** + * SWP와 동일한 방식 + */ +export function formatDolceDateTime(dateStr: string | null): string { + if (!dateStr) return "-"; + return formatSwpDate(dateStr); +} + +/** + * YYYYMMDD 형식을 YYYY-MM-DD로 변환 + * + * @param dateStr "20170220" 형식 + * @returns "2017-02-20" + */ +export function formatDolceDateYYYYMMDD(dateStr: string | null): string | null { + if (!dateStr || dateStr.length !== 8) return null; + + try { + const year = dateStr.substring(0, 4); + const month = dateStr.substring(4, 6); + const day = dateStr.substring(6, 8); + + return `${year}-${month}-${day}`; + } catch { + return dateStr; + } +} + +/** + * 통합 날짜 포맷팅 + * + * @param dateStr 날짜 문자열 (다양한 형식 지원) + * @returns 포맷팅된 날짜 문자열 + */ +export function formatDolceDate(dateStr: string | null): string { + if (!dateStr) return "-"; + + // YYYYMMDD 형식 (8자리 숫자) + if (/^\d{8}$/.test(dateStr)) { + return formatDolceDateYYYYMMDD(dateStr) || dateStr; + } + + // 날짜+시간 형식 + return formatDolceDateTime(dateStr); +} -- cgit v1.2.3