JavaScript를 사용하다보면 Date 객체를 사용할 일이 굉장히 많다. 실제로 나 또한 Date 객체를 자주 활용해 본 경험이 있다. 문제는, 항상 Date 객체를 사용할 때 마다 그 사용법과 함수들이 헷갈려 매번 구글링을 통해 찾아봤다는 것이다. 그래서 블로그를 작성하기 시작한 이번 기회에, JavaScript의 Date 객체에 대해 한 번 정리하고 넘어가 보고자 한다.
JavaScript의 Date 객체는 날짜와 시간을 다루는 데 필수적인 도구이다. Date 객체를 통해 날짜와 시간 정보를 생성, 수정, 비교할 수 있다. 아래에서 Date 객체의 활용법에 대해 알아보자.
Date 객체의 정보는 set으로 시작하는 다양한 메서드를 통해 수정할 수 있다. 예를 들어, 특정 날짜와 시간을 설정하고자 할 때 다음과 같은 메서드를 사용할 수 있다.
let myDate = new Date(2017, 4, 18, 19, 11, 16);
myDate.setFullYear(2022); // 년도 변경
myDate.setMonth(0); // 월 변경 (0은 1월을 의미)
myDate.setDate(15); // 일 변경
toLocaleDateString(), toLocaleTimeString(), toLocaleString() 메서드는 사용자의 브라우저 설정에 따라 날짜와 시간 정보를 현지화하여 표시한다.
let myDate = new Date();
console.log(myDate.toLocaleDateString()); // 날짜 정보
console.log(myDate.toLocaleTimeString()); // 시간 정보
console.log(myDate.toLocaleString()); // 날짜와 시간 정보
Date 객체는 범위를 벗어나는 값을 자동으로 조정해준다.
let myDate = new Date(1988, 0, 32); // 1월 32일은 없으므로 자동 조정됨
console.log(myDate); // 2월 1일로 출력됨
Date.now() 메서드는 현재 시간의 타임스탬프를 반환한다. 이는 새로운 Date 객체를 만들지 않고도 현재 시간을 빠르게 얻을 수 있게 해준다.
console.log(Date.now());
Date 객체는 다양한 타입으로 변환될 수 있다.
let myDate = new Date(2017, 4, 18);
console.log(String(myDate)); // 문자열 형태
console.log(Number(myDate)); // 타임스탬프 숫자
console.log(Boolean(myDate)); // 불리언 값
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)); // 일(day) 단위의 차이
다양한 형식의 문자열을 사용해 Date 객체를 생성할 수 있지만, 표준 형식을 사용하는 것이 좋다.
let date1 = new Date('1999-12-15T05:25:30'); // 권장되는 ISO 형식