-
Section 6. 자바스크립트 Date 객체자바스크립트 2023. 3. 31. 11:34
Date 객체는 날짜와 시간 관련 기능들을 제공하는 빌트인 객체이다.
I. 생성자 함수
1. 현재 날짜와 시간
const now = new Date(); console.log(typeof now); //object console.log(now); //Fri Mar 31 2023 11:11:02 GMT+0900 (한국 표준시)
const nowStr = Date() console.log(typeof nowStr); //string console.log(nowStr); //Fri Mar 31 2023 11:11:13 GMT+0900 (한국 표준시)
현재 날짜와 시간이 출력되는 것을 알 수 있다.
두개의 출력문을 보면 특징은 다음과 같다.
- new와 함께 사용하면 인스턴스 객체가 된다.
- new 없이 사용하면 문자열을 반환한다. - new Date().toString() 과 같다.
2. 밀리초 기준
1970년 1월 1일 자정(UTC, 그리니치 평균시)으로부터 인자로 주어진 밀리초만큼 경과한 시간이다.
여기서 자정은 해당 일 0시 0분 0초를 의미한다.
console.log( new Date(0) ); //Thu Jan 01 1970 09:00:00 GMT+0900 (한국 표준시) console.log( new Date(1000 * 60 * 60 * 24 * 365 * 30) ); //Sat Dec 25 1999 09:00:00 GMT+0900 (한국 표준시)
3. 단위별 숫자 입력
연, 월 (0부터 시작) 은 필수이다.
일, 시, 분, 초, 밀리초는 옵션이다. 그리고 없을 시에는 0이다.
console.log( new Date(2022, 8) ); //Thu Sep 01 2022 00:00:00 GMT+0900 (한국 표준시) console.log( new Date(2022, 8, 20, 14, 35) ); //Tue Sep 20 2022 14:35:00 GMT+0900 (한국 표준시) console.log( new Date(2022, 8, 20, 14, 35, 47, 789) ); //Tue Sep 20 2022 14:35:47 GMT+0900 (한국 표준시)
4. dateString
특정 형식의 문자열을 인식 가능하다.
*하지만 동작이 일관적이지 못하고, 브라우저마다 차이가 존재해서 권장하지 않는다.
console.log( new Date('August 20, 2022 14:35:47') ); //Sat Aug 20 2022 14:35:47 GMT+0900 (한국 표준시) console.log( new Date('2022-08-20T14:35:47') ); //Sat Aug 20 2022 14:35:47 GMT+0900 (한국 표준시)
II. 정적 메서드
1. now
연재의 밀리초 숫자값 (앞으로 UTC 1970/1/1 자정부터 경과값을 의미) 반환하는 메서드이다.
console.log(Date.now()); //1680229292824
2. parse, UTC
주어진 시간의 밀리초 숫자값을 반환하는 메서드이다.
parse는 dateString, UTC는 단위별 숫자를 받는다.
console.log( Date.parse('August 20, 2022 00:00:00 UTC') ); //1660953600000
console.log( // 💡 시스템(실행 컴퓨터) 시간이 한국이면 시차 9시간 적용 Date.parse('August 20, 2022 09:00:00') ); //1660953600000
console.log( // ⭐️ 월은 0부터 시작 Date.UTC(2022, 7, 20, 0, 0, 0) ); //1660953600000
III. 인스턴스 메서드
1. toString, toDateString, toTimeString
각각 전체, 날짜만, 시간만 나타내는 문자열을 출력하는 메서드이다.
시스템(컴퓨터)의 언어 설정별로 다르게 나타난다.
const now = new Date(); console.log( now.toString() ); //Fri Mar 31 2023 11:24:25 GMT+0900 (한국 표준시) console.log( now.toDateString() ); //Fri Mar 31 2023 console.log( now.toTimeString() ); //11:24:25 GMT+0900 (한국 표준시)
2. toLocaleString
주어진 언어 코드를 기준으로 표현한 문자열을 반환하는 메서드이다.
인자가 없을 시 시스템의 언어를 적용한다.
const now = new Date(); console.log( now.toString() ); //Fri Mar 31 2023 11:25:49 GMT+0900 (한국 표준시) console.log( now.toLocaleString() ); //2023. 3. 31. 오전 11:25:49 console.log( now.toLocaleString('ko-KR') ); //2023. 3. 31. 오전 11:25:49 console.log( now.toLocaleString('de-DE') ); //31.3.2023, 11:25:49
3. 단위별 setter, getter 메서드들
const now = new Date(); console.log(now.toString()); //Fri Mar 31 2023 11:26:51 GMT+0900 (한국 표준시) for (i of [ [ '연:', now.getFullYear() ], [ '월:', now.getMonth() ], // 0 ~ 11 [ '일:', now.getDate() ], [ '요일:', now.getDay() ], // 0부터 일월화수목금토 [ '시:', now.getHours() ], [ '분:', now.getMinutes() ], [ '초:', now.getSeconds() ], [ '밀리초:', now.getMilliseconds() ] ]) { console.log(i[0], i[1]); }
출력문은 다음과 같다.
const now = new Date(); console.log(now.toString()); //Fri Mar 31 2023 11:29:11 GMT+0900 (한국 표준시) now.setFullYear(2022); now.setMonth(7); now.setDate(20); // 💡 요일은 setter가 없음 now.setHours(14); now.setMinutes(35); now.setSeconds(47); now.setMilliseconds(789); console.log(now.toString()); //Sat Aug 20 2022 14:35:47 GMT+0900 (한국 표준시)
이것을 활용하는 예시는 다음과 같다.
const now = new Date(); const year = now.getFullYear(); const month = now.getMonth() + 1; const date = now.getDate(); const day = '일월화수목금토'[now.getDay()]; console.log( `오늘은 ${year}년 ${month}월 ${date}일, ${day}요일입니다.` ); //오늘은 2023년 3월 31일, 금요일입니다.
4. getTime, setTime
밀리초 숫자값을 set하고 get하는 메서드이다.
const date1 = new Date(2020, 7, 20); const date1value = date1.getTime(); console.log(date1.toString()); //Thu Aug 20 2020 00:00:00 GMT+0900 (한국 표준시) console.log(date1value); //1597849200000
const date2 = new Date(); console.log(date2.toString()); //Fri Mar 31 2023 11:31:44 GMT+0900 (한국 표준시) date2.setTime(date1value); console.log(date2.toString()); //Thu Aug 20 2020 00:00:00 GMT+0900 (한국 표준시)
5. getTimezoneOffset
시스템의 시간대와 UTC의 시간차를 분 단위로 반환하는 메서드이다.
한국의 경우 9시간 차이가 있다.
console.log( new Date().getTimezoneOffset() / 60 ); //-9
6. toISOString
ISO 8061이란 형식의 문자열을 반환하는 메서드이다.
UTC 기준으로 반환한다.
const now = new Date(); // 시간차 존재 console.log( now.toISOString() ); //2023-03-31T02:33:58.705Z console.log( now.toString() ); //Fri Mar 31 2023 11:33:58 GMT+0900 (한국 표준시)
현재시각으로 맞추면 다음과 같다.
const now = new Date(); const timezoneOffset = now.getTimezoneOffset() * 60000; const isoStr = new Date(now.getTime() - timezoneOffset).toISOString(); console.log(isoStr); //2023-03-31T11:34:32.791Z console.log(now.toString()); //Fri Mar 31 2023 11:34:32 GMT+0900 (한국 표준시)
'자바스크립트' 카테고리의 다른 글
Section 7. 자바스크립트 배열의 기본 메서드들 (0) 2023.04.04 Section 7. 자바스크립트 배열의 특징과 생성 (0) 2023.04.04 Section 6. 자바스크립트 Math 객체 (0) 2023.03.31 Section 6. 자바스크립트 Number 객체 (0) 2023.03.31 Section 6. 자바스크립트 String 객체 (0) 2023.03.30