blog

JS 시간 서식 체계 요약

현재 JS에서 시간 서식을 지정하는 데는 다양한 옵션이 있지만, 구체적으로 어떤 것을 사용하려면 프로젝트 요구 사항과 해당 기술 스택을 살펴봐야 합니다. 다음은 일반적인 방법을 요...

Aug 15, 2025 · 8 min. read
シェア

JS는 현재 시간 서식 을 위한 다양한 옵션을 구현하고 있지만, 구체적으로 어떤 것을 사용하려면 프로젝트 요구 사항과 해당 기술 스택을 살펴봐야 합니다. 다음은 일반적인 방법을 요약한 것입니다:

Date 객체 API

Date 객체는 자바스크립트에서 날짜와 시간을 처리하는 기본 도구입니다. 날짜 및 시간의 다양한 부분을 가져오고 설정하고 날짜 및 시간 계산을 수행하는 다양한 메서드를 제공합니다.

// *****************************************************
// 날짜 객체 만들기
// *****************************************************
// 현재 날짜 및 시간
const currentDate = new Date();
// 밀리초를 기준으로 날짜를 생성합니다.
const specificDate = new Date(1637078487000);
// 문자열에서 날짜 만들기
const dateString = '2022-11-16T12:34:45';
const dateFromString = new Date(dateString);
// *****************************************************
// 날짜 및 시간 부분 가져오기
// *****************************************************
const year = currentDate.getFullYear();
const month = currentDate.getMonth(); // 0 11까지 수동으로+1
const day = currentDate.getDate();
const hours = currentDate.getHours();
const minutes = currentDate.getMinutes();
const seconds = currentDate.getSeconds();
// *****************************************************
// 날짜 및 시간 섹션 설정
// *****************************************************
currentDate.setFullYear(2023);
currentDate.setMonth(5); // 0 11까지
currentDate.setDate(25);
currentDate.setHours(14);
currentDate.setMinutes(30);
currentDate.setSeconds(0);

날짜 객체는 여러 가지 방식으로 시간 서식을 구현합니다:

수동 서식 지정

이것은 기본적인 방법이지만 형식을 수동으로 구성해야 합니다.

const date = new Date();
const formattedDate = `${date.getFullYear()}-${(date.getMonth() + 1).toString().padStart(2, '0')}-${date.getDate().toString().padStart(2, '0')} ${date.getHours().toString().padStart(2, '0')}:${date.getMinutes().toString().padStart(2, '0')}:${date.getSeconds().toString().padStart(2, '0')}`;
console.log(formattedDate);

toLocaleString

Date 객체에는 날짜와 시간의 형식을 지정하는 toLocaleString 메서드가 있으며, 날짜와 시간을 별도로 가져오는 다른 두 가지 메서드를 파생합니다.

  • 필드 설명:
    • : toLocaleTimeString()
  • 매개변수 설명 :
    • 'en-US', { timeZone: 'America/new_York' }
    • en-US : 지역 설정(문자열)
    • { timeZone: 'America/new_York' }: 날짜 시간 형식 및 시간대 정보
const date = new Date();
const options = { year: 'numeric', month: '2-digit', day: '2-digit', hour: '2-digit', minute: '2-digit', second: '2-digit' };
const formattedDate = date.toLocaleString('ja-JP', options);
console.log(formattedDate); // 2024/01/14 14:55:26

Intl.DateTimeFormat

Intl.DateTimeFormat은 날짜와 시간 서식을 지정하기 위한 ECMAScript 국제화 API의 일부입니다. 다양한 지역과 언어에 맞는 날짜/시간 문자열을 유연하게 생성할 수 있는 방법을 제공합니다.

// *****************************************************
// 국제 시간 만들기.DateTimeFormat  
// *****************************************************
// 'ja-JP' 는 단순화된 형식을 나타내는 지역 문자열입니다.
// 설정하지 않으면 다국어 지원을 위해 사용자 브라우저의 언어 설정에 따라 적절한 형식이 자동으로 선택됩니다.
const dateFormatter = new Intl.DateTimeFormat('ja-JP');
// *****************************************************
// 형식화된 시간
// *****************************************************
// 서식 메서드를 사용하여 날짜 개체 서식 지정하기
const date = new Date();
const formattedDate = dateFormatter.format(date);
console.log(formattedDate); // 2024/1/14

서식 옵션

Intl.DateTimeFormat을 사용하면 두 번째 매개 변수를 통해 몇 가지 옵션을 전달할 수 있습니다:

const options = {
 weekday: 'long', // 'short', 'narrow'
 year: 'numeric', // '2-digit'
 month: 'long', // 'short', 'narrow'
 day: 'numeric', // '2-digit'
 hour: '2-digit', // 'numeric'
 minute: '2-digit', // 'numeric'
 second: '2-digit', // 'numeric'
 timeZoneName: 'short', // 'long'
};
const dateFormatterWithOptions = new Intl.DateTimeFormat('ja-JP', options);
const formattedDateWithOptions = dateFormatterWithOptions.format(date);
console.log(formattedDateWithOptions); // 14일 일요일 GMT+8 15:08:43
year'numeric' , '2-digit'연도가 표시되는 방식. 예를 들어 '숫자' 는 4자리 연도 전체가 사용됨을 의미하고 '2자리 '는 2자리 연도가 사용됨을 의미합니다.
month'numeric' , '2-digit' , 'long' , 'short' , 'narrow'월이 표시되는 방식. 예를 들어 '숫자' 는 월에 숫자를 사용한다는 의미이고 '긴' 은 전체 월 이름을 사용한다는 의미입니다.
day'numeric' , '2-digit'날짜는 연도와 유사한 방식으로 표시됩니다.
시간HH00-23
'숫자', '2자리'분 표시 방법
second'numeric' , '2-digit'분 표시 방법
weekday'long', 'short', 'narrow'월의 요일
era'long', 'short', 'narrow'시대가 표시됩니다(예: 기원전 이후).
시간'long' , 'short' , 'narrow'시간대 이름을 표시하는 방법
hour12true, false12시간을 사용할지 여부입니다. true이면 12시간이 사용되고 false이면 24시간이 사용됩니다.
formatMatcher'basic' , 'best fit'영역별 날짜 및 시간 표현식을 처리하는 데 가장 적합한 일치 항목을 선택하는 데 사용됩니다.
시간HH표준 시간대를 지정하는 문자열(예: 'UTC' 또는 '유럽/런던 ')입니다. 이 옵션을 생략하면 런타임 환경의 기본 표준 시간대가 사용됩니다.

지원되는 옵션 받기

해결된옵션 메서드를 사용하여 실제 사용된 옵션을 가져올 수 있습니다:

const optionsUsed = dateFormatter.resolvedOptions();
console.log(optionsUsed);

호환성

타사 라이브러리

다양한 기능과 날짜 서식을 지정하는 더 간단한 API를 제공하는 moment.js 또는 day.js와 같은 타사 라이브러리를 사용합니다. moment.js는공식적으로 유지 관리되지 않는 것으로 선언되었으므로 day.js 또는 네이티브 JavaScript 날짜 객체를 사용하는 것이 좋습니다.

day.js 사용 예시:

import dayjs from 'dayjs';
// dayjs 객체 만들기
const now = dayjs();
// 형식화된 날짜
const formattedDate = now.format('YYYY-MM-DD HH:mm:ss');
console.log(formattedDate);
// 사용자 지정 형식의 문자열
const customFormattedDate = now.format('YYYY/MM/DD HH:mm:ss');
console.log(customFormattedDate);

지원되는 구문 분석 자리 표시자 목록

YY01두 자리 연도
YYYY0021네 자리 연도
M1-121로 시작하는 월
MM01-12월, 두 자리 숫자
MMMJan-Dec축약된 월 이름
MMMMJanuary-December전체 월 이름
D1-31월의 요일
DD01-31월, 두 자리 숫자
H0-23시간
HH00-23시간, 두 자리 숫자
h1-12시간, 하루 12시간
hh01-12시간, 두 자리 숫자
m0-59
mm00-59분, 두 자리 숫자
s0-5960분의 1도에 해당하는 각도 또는 호의 단위
ss00-59초, 두 자릿수
S0-9밀리초, 한 자리 숫자
SS00-99밀리초, 두 자리 숫자
SSS000-999밀리초, 세 자리 숫자
Z-05:00UTC 오프셋
ZZ-0500UTC 오프셋
A오전 오후 대문자오전 오후 대문자
a오전 오후 대문자오전 오후 소문자
Do1st... 31st월의 요일
X.975Unix
x1410715640579
Read next

Nuttx RTOS 시작하기 - 소개 및 코드 실행

기사 XXX는 자동차 3 도메인에서 다양한 OS를 실행하고 있으며, 가장 일반적인 것은 매크로 커널 Linux 및 Android와 마이크로 커널 QNX, freeRTOS와 같은 RTOS 등 다양한 OS를 개발 한 다음 매우 다양한 OS에서 통합 OS Harmony OS를 소개했습니다.

Aug 15, 2025 · 16 min read