Skip to content

formatDate / timestampToTime

토큰 패턴으로 날짜를 다듬습니다.

API

formatDate(value?, pattern?)

매개변수설명타입기본값
value타임스탬프, 날짜 문자열, Date. 빼면 지금 시각number | string | Date지금
pattern토큰 패턴string'YYYY-MM-DD HH:mm:ss'
토큰토큰
YYYY/YYmm/m
MM/M월(1–12)ss/s
DD/DSSS밀리초
HH/H시(0–23)A/aAM/PM · am/pm
hh/h시(1–12)[...]그대로 낼 글자

입력을 해석할 수 없으면 'Invalid Date'를 반환합니다.

timestampToTime(timestamp?)

더는 권하지 않습니다. 인스턴스에 format 메서드를 붙인 Date를 반환합니다.

예시

js
import { formatDate } from 'ranuts';

formatDate(); // '2026-07-25 14:30:00'
formatDate(1753425000000, 'YYYY/MM/DD'); // '2026/07/25'
formatDate(new Date(), 'YYYY[年]MM[月]DD[日] hh:mm a');
formatDate('not a date'); // 'Invalid Date'

참고

  1. 대소문자가 다릅니다. MM은 월, mm은 분이고, HH는 24시간제, hh는 12시간제입니다.
  2. 패턴은 한 번에 치환합니다. 그래서 방금 써 넣은 값이 뒤의 토큰에 다시 걸리는 일이 없습니다.
  3. 그대로 낼 글자는 []로 감싸 치환에서 빼세요.

0.3에서 고치고 갈아치웠습니다

예전 포매터는 대소문자를 가리지 않는 플래그를 단 .replace()를 여섯 번 이어 붙였습니다. 결과는 두 가지였습니다. 뒤의 패턴이 앞의 패턴이 막 써 넣은 숫자를 잡을 수 있었고, /M+/g/m+/g/D+/gi가 서로 겹쳤습니다. 그래서 yyyy-mm-dd 같은 소문자 패턴은 연-분-일을 냈습니다.

timestampToTime은 더는 권하지 않으며 formatDate를 쓰세요. Date 인스턴스에 메서드를 붙여 봐야 직렬화하면 사라지고, Function 이상으로 타입을 붙일 수도 없습니다. 그 format은 이제 formatDate에 맡기므로, 이미 쓰던 쪽도 고쳐진 토큰 처리를 그대로 받습니다.

MIT 라이선스로 배포됩니다.