summaryrefslogtreecommitdiff
path: root/lib/dolce/utils/date-formatter.ts
diff options
context:
space:
mode:
authorjoonhoekim <26rote@gmail.com>2025-11-24 20:13:50 +0900
committerjoonhoekim <26rote@gmail.com>2025-11-24 20:13:50 +0900
commitc54a2445b6285d06c0ce3afa1cd3aa6aecf6de94 (patch)
tree7a3f8e9d2eb3c8f4d9659cfe1d719d45dcbec139 /lib/dolce/utils/date-formatter.ts
parentb284a6e07c2dd03d10eb471d69457e92bcc0ac76 (diff)
(김준회) dolce rebuild: i18n 지원
Diffstat (limited to 'lib/dolce/utils/date-formatter.ts')
-rw-r--r--lib/dolce/utils/date-formatter.ts54
1 files changed, 54 insertions, 0 deletions
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);
+}