JavaScript Dates
JavaScript Dates: 날짜 및 시간 처리의 이해와 활용
JavaScript에서 **날짜(Date)**는 날짜와 시간을 다루기 위한 데이터 타입입니다. 날짜 객체를 사용하면 현재 시간, 특정 날짜, 시간 차이 계산 등과 같은 다양한 날짜와 관련된 작업을 수행할 수 있습니다. 이 가이드는 JavaScript에서 날짜와 시간을 다루는 방법, 날짜 객체의 생성 및 활용 방법, 그리고 날짜 관련 메서드에 대해 설명합니다.
1. Date
객체 생성
JavaScript의 날짜와 시간을 다루기 위해서는 Date
객체를 생성해야 합니다. Date
객체는 여러 가지 방법으로 생성할 수 있으며, 생성 시점의 현재
날짜와 시간을 나타내거나 특정 날짜를 설정할 수 있습니다.
1.1. 현재 날짜와 시간
new Date()
를 호출하면 현재의 날짜와 시간을 나타내는 Date
객체가 생성됩니다.
const now = new Date();
console.log(now); // 현재 날짜와 시간 출력
1.2. 특정 날짜 설정
특정 날짜를 설정하려면 new Date()
의 인수로 연도, 월, 일 등을 지정할 수 있습니다.
const specificDate = new Date(2024, 9, 10); // 2024년 10월 10일 (월은 0부터 시작하므로 9는 10월)
console.log(specificDate); // 출력: Thu Oct 10 2024 ...
1.3. 날짜 문자열로 설정
날짜를 문자열로 전달하여 Date
객체를 생성할 수 있습니다.
const dateString = new Date("2024-10-10");
console.log(dateString); // 출력: Thu Oct 10 2024 ...
1.4. 타임스탬프로 생성
1970년 1월 1일 UTC 자정 이후의 밀리초를 인수로 사용하여 날짜를 생성할 수 있습니다.
const timestampDate = new Date(1633072800000);
console.log(timestampDate); // 타임스탬프에 해당하는 날짜 출력
2. 날짜 및 시간 메서드
Date
객체에는 날짜와 시간을 다루기 위한 다양한 메서드가 포함되어 있습니다.
2.1. getFullYear()
해당 날짜의 연도를 반환합니다.
const year = now.getFullYear();
console.log(year); // 출력: 2024
2.2. getMonth()
해당 날짜의 월을 반환합니다. 월은 0부터 시작하므로, 0은 1월, 1은 2월을 나타냅니다.
const month = now.getMonth();
console.log(month); // 출력: 현재 월 (0부터 시작)
2.3. getDate()
해당 날짜의 일을 반환합니다.
const day = now.getDate();
console.log(day); // 출력: 오늘 날짜
2.4. getDay()
해당 날짜의 요일을 반환합니다. 요일은 0부터 6까지 반환되며, 0은 일요일, 1은 월요일을 나타냅니다.
const weekDay = now.getDay();
console.log(weekDay); // 출력: 현재 요일 (0 = 일요일, 1 = 월요일, ...)
2.5. getHours()
, getMinutes()
, getSeconds()
, getMilliseconds()
해당 날짜의 시간을 반환합니다.
const hours = now.getHours(); // 현재 시간
const minutes = now.getMinutes(); // 현재 분
const seconds = now.getSeconds(); // 현재 초
const milliseconds = now.getMilliseconds(); // 현재 밀리초
console.log(`${hours}:${minutes}:${seconds}.${milliseconds}`); // 예시 출력: 14:30:45.123
3. 날짜 및 시간 설정
Date
객체의 날짜와 시간을 설정할 때도 다양한 메서드를 사용할 수 있습니다.
3.1. setFullYear()
날짜의 연도를 설정합니다.
const date = new Date();
date.setFullYear(2025);
console.log(date); // 출력: 연도가 2025로 설정된 날짜
3.2. setMonth()
날짜의 월을 설정합니다. 0부터 시작하는 인덱스를 사용합니다.
date.setMonth(11); // 12월 설정 (0 = 1월)
console.log(date);
3.3. setDate()
날짜를 설정합니다.
date.setDate(15); // 15일로 설정
console.log(date);
3.4. setHours()
, setMinutes()
, setSeconds()
, setMilliseconds()
시간, 분, 초, 밀리초를 각각 설정할 수 있습니다.
date.setHours(10);
date.setMinutes(30);
date.setSeconds(15);
date.setMilliseconds(500);
console.log(date); // 10:30:15.500로 시간 설정된 날짜 출력
4. 날짜와 시간의 비교
4.1. getTime()
getTime()
메서드는 1970년 1월 1일 자정 이후의 밀리초를 반환합니다. 이를 통해 날짜를 숫자로 비교할 수 있습니다.
const earlierDate = new Date("2024-01-01");
const laterDate = new Date("2024-12-31");
if (laterDate.getTime() > earlierDate.getTime()) {
console.log("laterDate는 earlierDate보다 이후입니다.");
}
4.2. 날짜 차이 계산
날짜 간의 차이는 밀리초 단위로 계산됩니다. 이를 이용해 두 날짜 간의 차이를 계산할 수 있습니다.
const startDate = new Date("2024-01-01");
const endDate = new Date("2024-12-31");
const timeDifference = endDate - startDate; // 차이는 밀리초 단위
const daysDifference = timeDifference / (1000 * 60 * 60 * 24); // 일 단위로 변환
console.log(daysDifference); // 출력: 365일
5. 날짜와 시간의 형식 변환
5.1. toDateString()
날짜만 표시하는 문자열로 변환합니다.
console.log(now.toDateString()); // 예시 출력: Mon Oct 10 2024
5.2. toTimeString()
시간만 표시하는 문자열로 변환합니다.
console.log(now.toTimeString()); // 예시 출력: 14:30:45 GMT+0900 (KST)
5.3. toLocaleDateString()
현지 언어 형식으로 날짜를 표시합니다.
console.log(now.toLocaleDateString()); // 예시 출력: 2024. 10. 10.
5.4. toLocaleTimeString()
현지 언어 형식으로 시간을 표시합니다.
console.log(now.toLocaleTimeString()); // 예시 출력: 14:30:45
6. 고급 날짜 처리: Intl.DateTimeFormat
JavaScript의 Intl.DateTimeFormat
객체를 사용하면, 날짜와 시간을 다양한 지역 및 형식으로 쉽게 포맷할 수 있습니다.
const date = new Date();
const formatter = new Intl.DateTimeFormat("en-US", {
year: "numeric",
month: "long",
day: "numeric",
weekday: "long",
hour: "numeric",
minute: "numeric",
second: "numeric",
timeZoneName: "short"
});
console.log(formatter.format(date)); // 예시 출력: Wednesday, October 10, 2024, 2:30:45 PM GMT+09:00
요약
Date
객체: JavaScript에서 날짜와 시간을 다루는 객체입니다.- 날짜 생성: 현재 날짜, 특정 날짜, 문자열 또는 타임스탬프를 통해
Date
객체를 생성할 수 있습니다. - 날짜 메서드:
getFullYear()
,getMonth()
,getDate()
등 다양한 메서드를 사용하여 날짜와 시간을 얻거나 설정할 수 있습니다. - 날짜 비교:
getTime()
메서드를 사용하여 날짜를 밀리초 단위로 비교할 수 있습니다. - 형식 변환:
toLocaleDateString()
,toLocaleTimeString()
을 사용하여 날짜와 시간을 원하는 형식으로 변환할 수 있습니다.
JavaScript의 Date
객체를 사용하면 다양한 날짜 및 시간 작업을 손쉽게 처리할 수 있습니다. 날짜 계산, 형식 변환 등을 실습해보며 Date
객체를
익혀보세요!