-
6-6. JavaScript Date객체JavaScript 2023. 3. 31. 11:09
I. 생성자 함수
1. 현재 날짜와 시간
const now = new Date(); console.log(typeof now); // object console.log(now); // Fri Mar 31 2023 10:37:00 GMT+0900 (한국 표준시)
- new와 함께 사용하면 인스턴스 객체
- 없이 사용하면 문자열 반환 - new Date().toString() 과 같음
2. 밀리초 기준
- 1970년 1월 1일 자정(UTC, 그리니치 평균시)으로부터 인자로 주어진 밀리초만큼 경과한 시간
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 (한국 표준시) );
4. dateString
- 특정 형식의 문자열 인식 가능
⚠️ 동작이 일관적이지 못함, 브라우저마다 차이가 있을 수 있음 - 권장하지 않음
console.log( new Date('August 20, 2022 14:35:47') // Sat Aug 20 2022 14:35:47 GMT+0900 (한국 표준시) );
II. 정적 메서드
1. now
- 현재의 밀리초 숫자값 반환
console.log(Date.now()); // 1680227633150
2. parse, UTC
- 주어진 시간의 밀리초 숫자값 반환
- parse 는 dateString, UTC 는 단위별 숫자를 받음
console.log( Date.parse('August 20, 2022 00:00:00 UTC') // 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 10:57:22 GMT+0900 (한국 표준시) ); console.log( now.toDateString() // Fri Mar 31 2023 ); console.log( now.toTimeString() // 10:57:22 GMT+0900 (한국 표준시) );
2. toLocaleString
- 주어진 언어 코드를 기준으로 표현한 문자열 반환
- 인자가 없을 시 시스템의 언어 적용
const now = new Date(); console.log( now.toString() // Fri Mar 31 2023 10:58:17 GMT+0900 (한국 표준시) );
3. 단위별 setter, getter 메서드들
① getter
const now = new Date(); console.log(now.toString()); for (i of [ [ '연:', now.getFullYear() ], // 연: 2023 [ '월:', now.getMonth() ], // 0 ~ 11 // 월: 2 [ '일:', now.getDate() ], // 일: 31 [ '요일:', now.getDay() ], // 0부터 일월화수목금토 // 요일: 5 [ '시:', now.getHours() ], // 시: 10 [ '분:', now.getMinutes() ], // 분: 58 [ '초:', now.getSeconds() ], // 초: 43 [ '밀리초:', now.getMilliseconds() ] // 밀리초: 453 ]) { console.log(i[0], i[1]); // 위에 주석으로 각각 적어놈 }
② setter
const now = new Date(); console.log(now.toString()); 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 (한국 표준시)
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:02:41 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:04:58.980Z ); console.log( now.toString() // Fri Mar 31 2023 11:04:58 GMT+0900 (한국 표준시) );
✨ISO 8061 형식이란?
날짜와 시간과 관련된 데이터 교환을 다루는 국제 표준이며, 국제 표준화 기구(ISO)에 의해 1988년에 공포되었다.
목적은 날짜와 시간을 표현함에 있어서 명백하고 잘 정의된 방법을 제공함으로써,
날짜와 시간의 숫자 표현에 대한 오해를 줄이고자함에 있는데,
숫자로 된 날짜와 시간 작성에 있어서 다른 관례를 가진 나라들간의 데이터가 오갈 때 특히 그렇다.
'JavaScript' 카테고리의 다른 글
7-2. JavaScript 배열의 기본 메서드들 (0) 2023.04.03 7-1. JavaScript 배열의 특징과 생성 (0) 2023.04.02 6-5. JavaScript Math 객체 (0) 2023.03.31 6-4. JavaScript Number 객체 (0) 2023.03.31 6-3. JavaScript String 객체 (0) 2023.03.31