우당탕탕 개발일기
모던 자바스크립트 30. Date 본문
표준 빌트인 객체인 Date는 날짜와 시간을 위한 메소드를 제공하는 빌트인 객체이며 생성자 함수이다.
'현재 날짜와 시간'이라 함은 자바스크립트 코드가 실행된 시스템의 시계에 의해 결정된다.
따라서 한국은 KST(한국표준시, UTC+9시간)으로 표시된다.
1. Date 생성자 함수
Date는 생성자 함수이다.
생성자 함수 Date로 생성한 Date 객체는 내부적으로 날짜와 시간을 나타내는 정수값을 갖는다.
이 정수값은 1970년 1월 1일 00:00:00(UTC)을 기점으로 Date 객체가 나타내는 날짜와 시간까지의 밀리초이며, 이를 타임스탬프라고 한다. 즉, 생성자 함수 Date로 생성한 Date 객체는 내부적으로 타임스탬프를 반환한다고 할 수 있다.
1) new Date()
Date 생성자 함수를 인수 없이 new 연산자와 함께 호출하면 현재 날짜와 시간을 가지는 Date 객체를 반환한다.
반환된 Date 객체는 내부적으로는 정수값을 갖지만, 콘솔에 출력하면 기본적으로 날짜와 시간 정보를 출력한다.
Date 생성자 함수를 new 연산자 없이 호출하면 Date 객체를 반환하지 않고 날짜와 시간 정보를 나타내는 문자열을 반환한다.
2) new Date(milliseconds)
Date 생성자 함수에 숫자 타입의 밀리초를 인수로 전달하면
1970년 1월 1일 00:00:00(UTC)을 기점으로 인수로 전달된 밀리초만큼 경과한 날짜와 시간을 나타내는 Date 객체를 반환한다.
3) new Date(dateString)
Date 생성자 함수에 날짜와 시간을 나타내는 문자열을 인수로 전달하면 지정된 날짜와 시간을 나타내는 Date 객체를 반환한다.
4) new Date(year, month[, day, hour, minute, second, millisecond])
Date 생성자 함수에 연, 월, 일, 시, 분, 초, 밀리초를 의미하는 숫자를 인수로 전달하면 지정된 날짜와 시간을 나타내는 Date 객체를 반환한다. 연(year)과 월(month)은 필수로 정해야하며, 지정하지 않은 옵션은 0 또는 1로 초기화 된다.
이 때, 월은 0(1월)부터 시작하여 11(12월)까지 존재한다.
2. Date 객체 메소드
1. 정적 메소드
1) Date.now
현재 시간까지의 타임스탬프를 숫자로 반환한다.
2) Date.parse
인수로 전달된 지정 시간까지의 타임스탬프를 숫자로 반환한다
YYYY/MM/DD형식, MM/DD/YYYY형식, YYYY-MM-DD형식, ISO 8601형식 등을 인수로 인식한다.
이 때, Date.parse 메소드의 인수는 new Date(dateString)의 인수와 같은 형식이다.
3) Date.UTC
인수로 전달된 지정 시간까지의 타임스탬프를 숫자로 반환한다.
이 때 Date.UTC 메소드의 인수는 new Date(year, month[, day, hour, minute, second, millisecond])의 인수와 같은 형식이다.
Date.UTC 메소드의 인수는 로컬 타임이 아닌 UTC로 인식된다.
2. 인스턴스 메소드
1) Getter 메소드
(1) Date.prototype.getFullYear
연도(네자릿수)를 반환한다.
getYear()라는 메소드로 연도를 얻고는 했지만 이는 두 자릿수 연도를 반환하는 경우도 있으므로 정확한 연도를 반환받기 위해서는 getFullYear()를 사용해야 한다.
(2) Date.prototype.getMonth
Date 객체의 월을 나타내는 0(1월)부터 11(12월)까지의 정수 중 하나를 반환한다.
(3) Date.prototype.getDate
Date 객체의 날짜를 나타내는 0~31까지의 정수를 반환한다.
(4) Date.prototype.getDay
Date 객체의 요일을 나타내는 0(일요일)부터 6(토요일)까지의 정수 중 하나를 반환한다.
(5) Date.prototype.getHours
Date 객체의 시간을 나타내는 0~23의 정수를 반환한다.
(6) Date.prototype.getMinutes
Date 객체의 분을 나타내는 0~59의 정수를 반환한다.
(7) Date.prototype.getSeconds
Date 객체의 초를 나타내는 0~59의 정수를 반환한다.
(8) Date.prototype.getMilliseconds
Date 객체의 밀리초를 나타내는 0~999의 정수를 반환한다.
(9) Date.prototype.getTime
Date 객체의 시간까지의 타임스탬프를 반환한다.
valueOf()라는 메소드를 사용해도 동일한 결과를 얻을 수 있다.
(10) Date.prototype.getTimezoneOffset
UTC와 Date 객체에 지정된 locale 시간과의 차이를 분 단위로 반환한다.
2) Setter 함수
(1) Date.prototype.setFullYear
Date 객체에 연도를 나타내는 정수를 설정한다.
연도 이외에 두 번째, 세 번째 인수에 월, 일도 설정할 수 있다.
(2) Date.prototype.setMonth
Date 객체에 월을 나타내는 0~11의 정수를 설정한다.
월 이외에 두 번째 인수로 일도 설정할 수 있다.
(3) Date.prototype.setDate
Date 객체에 날짜를 나타내는 0~31의 정수를 설정한다.
(4) Date.prototype.setHours
Date 객체에 시간을 나타내는 0~23의 정수를 설정한다.
시간 이외에 옵션으로 분, 초, 밀리초도 설정할 수 있다.
(5) Date.prototype.setMinutes
Date 객체에 분을 나타내는 0~59의 정수를 설정한다.
분 이외에 옵션으로 초, 밀리초도 설정할 수 있다.
(6) Date.prototype.setSeconds
Date 객체에 초를 나타내는 0~59의 정수를 설정한다.
초 이외에 옵션으로 밀리초도 설정할 수 있다.
(7) Date.prototype.setMilliseconds
Date 객체에 밀리초를 나타내는 0~999의 정수를 설정한다.
(8) Date.prototype.setTime
Date 객체에 1970년 1월 1일 00:00:00(UTC)을 기점으로 경과된 밀리초, 즉 타임스탬프를 설정한다.
3) 기타 메소드 (문자열 반환)
(1) Date.prototype.toDateString
사람이 읽을 수 있는 형식의 문자열로 Date 객체의 날짜를 반환한다.
(2) Date.prototype.toTimeString
사람이 읽을 수 있는 형식의 문자열로 Date 객체의 시간을 반환한다.
(3) Date.prototype.toISOString
ISO 8601 형식으로 Date 객체의 날짜와 시간을 표현한 문자열을 반환한다.
ISO 8601?
날짜와 시간을 표현하는 국제 표준.
기본 형식은 YYYY-MM-DD(날짜), hh:mm:ss(시간)이고
날짜와 시간을 결합한 YYYY-MM-DDThh:mm:ssZ 형태로 표현하기도 한다.
(4) Date.prototype.toLocaleString
인수로 전달한 로캘(locale)을 기준으로 Date 객체의 날짜와 시간을 표현한 문자열을 반환한다.
(5) Date.prototype.toLocaleDateString
인수로 전달한 로캘을 기준으로 Date 객체의 날짜를 표현한 문자열을 반환한다.
(6) Date.prototype.toLocaleTimeString
인수로 전달한 로캘을 기준으로 Date 객체의 시간을 표현한 문자열을 반환한다.
'What I Learned > JavsScript' 카테고리의 다른 글
모던 자바스크립트 33. 7번째 데이터 타입 Symbol (0) | 2024.07.10 |
---|---|
모던 자바스크립트 32. String (0) | 2024.07.08 |
모던 자바스크립트 26. ES6 함수의 추가 기능 (1) | 2024.06.17 |
모던 자바스크립트 24. 클로저 (0) | 2024.06.05 |
모던 자바스크립트 22. this (0) | 2024.05.20 |