-
표준 빌트인 객체 DateStudying/JavaScript 2021. 10. 12. 23:53
0. 자바스크립트의 날짜와 시간
자바스크립트가 측정하고 표기하는 시간은 POSIX의 시간 표기법과 같이 1970년 1월 1일 UTC(협정 세계시) 00:00을 기준으로 시작하며 하루를 86400초로 계산하고, 그레고리력(현재의 양력)을 따른다.
한편 POSIX와 다르게 자바스크립트는 시간을 밀리초(1/1000초) 단위의 정수값으로 나타내며, 시간을 측정하는 시간을 다루는 표준 빌트인 객체인 Date()를 제공한다.
Date 객체와 생성자함수에 대해 알아보자.
1. Date 생성자 함수
Date가 생성자함수로서 호출되면 새로운 Date 객체를 생성하고 초기화하며, 일반 함수로서 호출되면 현재의 UTC 시간을 문자열 형식으로 반환한다. 또한 전달되는 인수의 개수에 따라 다르게 동작한다.
1.1 일반 함수로서 호출되는 경우
New Target이 undefined인 경우, 즉 일반 함수로 Date()가 호출되는 경우 현재 시간을 문자열 형식으로 반환한다.
1.2 생성자 함수로서 호출되는 경우(1) - 인수를 전달하지 않을 때
인수를 전달하지 않고 new Date()와 같이 생성자 함수로서 호출하면 호출된 시점의 날짜와 시각을 가지는 Date 객체를 반환한다.
date 객체를 console.log로 출력해 보면 호출된 시점의 날짜와 시각이 문자열 형태로 출력되지만
이 값은 실제로는 정수값이며, 1970년 1월 1일 0시(UTC)부터 흐른 밀리초를 의미한다.
date 객체의 값을 숫자 형식으로 출력해 보면 이를 확인할 수 있다.
1.3 생성자 함수로서 호출되는 경우(2) - 인수를 전달할 때
인수를 전달하면 전달된 인수에 해당하는 시점의 날짜 및 시각을 가지는 Date 객체를 반환한다.
1) 전달하는 인수가 1개이고 정수라면 1970년 1월 1일 0시부터 전달된 인수만큼의 밀리초가 흐른 시점의 날짜 및 시각을 가지는 Date 객체를 반환한다.
2) 전달하는 인수가 1개이고 문자열(RFC2822 또는 ISO 8601 날짜를 나타내는 문자열, 즉 Date.parse 메서드에 의해 해석 가능한 날짜와 시간을 나타내는 형식의 문자열)이라면 지정된 날짜와 시각을 가지는 Date 객체를 반환한다.
이때 RFC2822와 ISO 8601의 날짜를 나타내는 문자열 형식은 다음과 같다.
- RFC2822
'2021-10-12 23:40:28'
'2021-10-12'
'Tue, 12 Oct 2021 23:40:28'
'Tue, 12 Oct 2021'- ISO 8601
'2021-10-12'
'2021-10-12T23:40'3) 전달하는 인수가 2개 이상이라면 전달되는 인수의 순서대로 년, 월, 일, 시, 분, 초, 밀리초를 각각 날짜 및 시각으로 가지는 Date 객체를 반환한다. 이때 처음 두 개의 인수, 즉 년과 월의 인수는 필수로 전달해야 하며 나머지는 순서대로 옵션으로 전달할 수 있다.
참고 자료
- ECMAScript https://262.ecma-international.org/12.0/#sec-date-objects
ECMAScript® 2021 Language Specification
The first and subsequent editions of ECMAScript have provided, for certain operators, implicit numeric conversions that could lose precision or truncate. These legacy implicit conversions are maintained for backward compatibility, but not provided for BigI
262.ecma-international.org
- MDN https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date
Date - JavaScript | MDN
JavaScript Date objects represent a single moment in time in a platform-independent format. Date objects contain a Number that represents milliseconds since 1 January 1970 UTC.
developer.mozilla.org
- 위키백과 - ISO8601 https://ko.wikipedia.org/wiki/ISO_8601
ISO 8601 - 위키백과, 우리 모두의 백과사전
ISO 8601 Data elements and interchange formats - Information interchange - Representation of dates and times은 날짜와 시간과 관련된 데이터 교환을 다루는 국제 표준이다. 이 표준은 국제 표준화 기구(ISO)에 의해 공포되
ko.wikipedia.org
반응형'Studying > JavaScript' 카테고리의 다른 글
Set 객체 (1) 2021.10.26 Date 생성자함수, 프로토타입 객체의 프로퍼티 (0) 2021.10.19 .filter().map()과 .reduce() (0) 2021.10.04 Array.prototype.sort() 메서드 (0) 2021.10.03 함수 호출 방식에 따른 this 바인딩 (0) 2021.09.28