본문 바로가기

프로그래밍 언어/자바스크립트

JavaScript Date 객체, 시간과 날짜 다루기

JavaScript Date 객체, 시간과 날짜 다루기

JavaScript의 Date 객체는 시간과 날짜를 다룰 수 있는 중요한 도구입니다. 날짜와 시간을 계산하거나 특정 형식으로 출력할 때 매우 유용합니다. 이 글에서는 Date 객체의 기본 사용법부터 고급 활용법까지 체계적으로 설명하며, 실용적인 예제를 통해 Date 객체를 다루는 방법을 알아보겠습니다.

 

 

목차

  1. Date 객체란?
  2. Date 객체 생성 방법
  3. 시간과 날짜를 얻는 다양한 메서드
  4. 시간과 날짜를 설정하는 메서드
  5. 날짜 형식 변환
  6. 시간 계산 및 타이머 기능 활용

 

1. Date 객체란?

JavaScript의 Date 객체는 시간과 날짜를 다루기 위해 만들어진 내장 객체입니다. 이 객체는 1970년 1월 1일 00:00:00 UTC부터의 경과 시간을 밀리초 단위로 기록하며, 이를 바탕으로 다양한 시간과 날짜 관련 작업을 수행할 수 있습니다. Date 객체는 브라우저의 시스템 시간을 기준으로 동작합니다.

 

 

 

2. Date 객체 생성 방법

Date 객체를 생성하는 방법은 여러 가지가 있습니다. 기본적으로 new Date()를 사용하면 현재 시간과 날짜를 나타내는 객체가 생성됩니다. 구체적인 날짜와 시간을 설정하려면 여러 인자를 사용할 수 있습니다.


// 현재 날짜와 시간 생성
let now = new Date();
console.log(now);

// 특정 날짜와 시간 설정
let specificDate = new Date(2023, 9, 14, 10, 30); // 2023년 10월 14일, 10시 30분
console.log(specificDate);

// 타임스탬프를 사용한 생성 (1970년 1월 1일 이후 밀리초)
let timestampDate = new Date(1636944000000);
console.log(timestampDate);
    

주의: 월(month)은 0부터 시작하므로, 9는 10월을 의미합니다.

 

 

 

3. 시간과 날짜를 얻는 다양한 메서드

Date 객체는 현재 날짜와 시간을 구할 수 있는 다양한 메서드를 제공합니다. 이 메서드들은 각각 연도, 월, 일, 시간, 분, 초, 밀리초 등을 반환합니다.

  • getFullYear(): 연도를 반환합니다.
  • getMonth(): 월을 반환합니다 (0: 1월, 11: 12월).
  • getDate(): 날짜(일)를 반환합니다.
  • getHours(): 시간을 반환합니다 (0-23).
  • getMinutes(): 분을 반환합니다.
  • getSeconds(): 초를 반환합니다.
  • getMilliseconds(): 밀리초를 반환합니다.
  • getDay(): 요일을 반환합니다 (0: 일요일, 6: 토요일).

let now = new Date();
console.log("Year:", now.getFullYear());  // 2024
console.log("Month:", now.getMonth());    // 9 (10월)
console.log("Date:", now.getDate());      // 14
console.log("Hours:", now.getHours());    // 현재 시간
console.log("Day:", now.getDay());        // 요일
    

 

 

 

4. 시간과 날짜를 설정하는 메서드

Date 객체는 날짜와 시간을 설정할 수 있는 메서드들도 제공합니다. setFullYear(), setMonth(), setDate() 등의 메서드를 사용하여 특정 날짜를 수정할 수 있습니다.


let date = new Date();
date.setFullYear(2025);  // 연도를 2025로 설정
date.setMonth(11);       // 12월로 설정 (0: 1월)
date.setDate(25);        // 25일로 설정
console.log(date);
    

이 메서드를 통해 기존 Date 객체의 시간을 쉽게 변경할 수 있습니다.

 

 

 

 

5. 날짜 형식 변환

Date 객체는 날짜와 시간을 다양한 형식으로 출력할 수 있도록 몇 가지 메서드를 제공합니다. 그 중에서도 toLocaleDateString(), toLocaleTimeString(), toISOString()과 같은 메서드를 자주 사용합니다. 이 메서드들은 국제화된 형식으로 날짜와 시간을 표현할 때 유용합니다.


let date = new Date();
console.log(date.toLocaleDateString());  // 로컬 날짜 형식 출력
console.log(date.toLocaleTimeString());  // 로컬 시간 형식 출력
console.log(date.toISOString());         // ISO 형식 (YYYY-MM-DDTHH:mm:ss.sssZ) 출력
    

toISOString()은 주로 서버와의 데이터 통신에서 표준 시간 형식을 사용하기 위해 활용됩니다.

 

 

 

6. 시간 계산 및 타이머 기능 활용

JavaScript의 Date 객체는 시간 간격 계산과 타이머 기능에도 사용할 수 있습니다. 두 날짜 사이의 차이를 계산하거나, 특정 시간이 지났는지 확인하는 작업을 수행할 수 있습니다.


// 두 날짜 간의 차이 계산
let startDate = new Date("2023-01-01");
let endDate = new Date("2023-12-31");
let diff = endDate - startDate;  // 밀리초 단위로 차이 계산
let days = diff / (1000 * 60 * 60 * 24);  // 일수로 변환
console.log(days + " days");  // 364 days

// setTimeout을 사용한 타이머
setTimeout(() => {
    console.log("3초 후 실행");
}, 3000);

// setInterval을 사용한 반복 타이머
let count = 0;
let intervalId = setInterval(() => {
    console.log("1초마다 실행", ++count);
    if (count === 5) clearInterval(intervalId);  // 5번 실행 후 중단
}, 1000);
    

setTimeout()setInterval()은 타이머와 관련된 동작을 구현할 때 유용하며, 특정 시간 이후에 또는 주기적으로 코드를 실행할 수 있습니다.