JavaScript의 Date 객체에 대해 자세히 알아보기
JavaScript의 Date
객체는 날짜와 시간을 처리하고 계산하는 데 유용한 내장 객체입니다. 이 글에서는 Date
객체를 생성하고, 수정하며, 다양한 방법으로 활용하는 방법에 대해 알아보겠습니다.
현재 날짜와 시간
Date
객체를 생성합니다.let now = new Date();
타임스탬프
Date
객체를 생성합니다.let specificTime = new Date(1633046400000);
문자열로 생성
Date
객체를 생성합니다.let dateString = new Date('2023-01-01');
년, 월, 일, 시간 등
let specificDate = new Date(2023, 0, 1, 10, 30, 45, 500);
set
으로 시작하는 메서드를 사용하여 Date
객체의 정보를 수정할 수 있습니다.
setFullYear(year, [month], [date])
let myDate = new Date(2017, 4, 18, 19, 11, 16);
myDate.setFullYear(2002);
setMonth(month, [date])
myDate.setMonth(6);
setDate(date)
myDate.setDate(20);
setHours(hour, [min], [sec], [ms])
myDate.setHours(15, 45, 30, 200);
toLocaleDateString
, toLocaleTimeString
, toLocaleString
메서드는 사용자의 로케일에 맞춰 날짜 및 시간을 포맷해줍니다.
let myDate = new Date();
console.log(myDate.toLocaleDateString()); // 날짜 (년. 월. 일)
console.log(myDate.toLocaleTimeString()); // 시간 (시:분:초)
console.log(myDate.toLocaleString()); // 날짜와 시간 (년. 월. 일 시:분:초)
범위를 벗어나는 날짜를 설정하려고 하면 자동으로 날짜를 수정해줍니다.
let myDate = new Date(1988, 0, 32);
console.log(myDate); // 1988-02-01
Date.now()
는 현재 시점의 타임스탬프를 반환하며 새로운 Date
객체를 만들지 않고도 현 시점의 날짜를 얻을 수 있습니다.
console.log(Date.now());
Date
객체는 문자열, 숫자, 불리언으로 변환될 때 각기 다른 방식으로 처리됩니다.
let myDate = new Date(2017, 4, 18);
console.log(String(myDate)); // Thu May 18 2017
console.log(Number(myDate)); // 1495033200000 (타임스탬프)
console.log(Boolean(myDate)); // true
Date
객체는 밀리초 기반으로 계산할 수 있어 두 날짜 간의 차이를 쉽게 계산할 수 있습니다.
let myDate1 = new Date(2017, 4, 18);
let myDate2 = new Date(2017, 4, 19);
let timeDiff = myDate2 - myDate1;
console.log(timeDiff / 1000 / 60 / 60 / 24); // 1 (일)
여러 형식의 문자열로 Date
객체를 생성할 수 있지만, 시간대 차이 등으로 문제가 발생할 수 있으므로 표준 형식을 사용해야 합니다.
let date1 = new Date('12/15/1999 05:25:30');
let date2 = new Date('December 15, 1999 05:25:30');
let date3 = new Date('Dec 15 1999 05:25:30');