summaryrefslogtreecommitdiff
path: root/lib/dolce/utils/date-formatter.ts
blob: 83e78b0d912b8e4baf015e5f8101df385cf0cff1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
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);
}