Javascript 와 Date 날짜

박성룡 ( Andrew park )
5 min readMay 20, 2019

--

자바스크립트를 처음부터 다시 공부해보려고 한다.

Javascript 에서 Date 는 유닉스 타임스탬프 를 사용한다.

Unix Time

Unix time 은 POSIX 시간이나 Epoch 시간이라고 부르기도 한다. 1970년 1월 1일 00:00:00 협정 세계시(UTC) 부터의 경과 시간을 초로 환산하여 정수로 나타낸다.

UTC

UTC 는 1972년 1월 1일부터 시행된 국제 표준시 이다.
UTC는 그리니치 평균시(GMT)에 기반하므로 GMT로도 불리기도 하는데, UTC 와 GMT는 초의 소숫점 단위에서만 차이가 나기 때문에 일상에서는 혼용되어 사용된다. 기술적인 표기에서는 UTC가 사용된다.

GMT

GMT 는 Greenwich Mean Time 의 약자로 런던을 기점으로 하고, 웰링턴에 종점으로 설정되는 협정 세계시 (UTC) 의 기준시간대이다.

- GMT+0   GMT/LON(런던)
- GMT+1 PAR(파리)
- GMT+2 CAI/JRS(카이로/예루살렘)
- GMT+3 JED(제다)
- GMT+3.5 THR(테헤란)
- GMT+4 DXB(두바이)
- GMT+4.5 KBL(카불)
- GMT+5 KHI(카라치)
- GMT+5.5 DEL(델리)
- GMT+6 DAC(다카)
- GMT+6.5 RGN(양곤)
- GMT+7 BKK(방콕)
- GMT+8 HKG(홍콩)
- GMT+9 SEL(서울)
- GMT+9.5 ADL(다윈)
- GMT+10 SYD(시드니)
- GMT+11 NOU(누메아)
- GMT+12 WLG(웰링턴)

Javascript 에서 Date

JavaScript 에서 Date 객체는 Date 생성자로 생성할 수 있다.

Date 객체에 전달되는 인자의형태에 따라서 해석되는데 Date.parse() 메서드가 해석할 수 있어야 하는 RFC2822 또는 ISO 8601 날짜를 나타내는 문자열 이나 UTC 기준의 숫자값 이어야 한다.

new Date() 에 인자를 넘기지 않는다면, 현재 시간이 반영된다.

만약 해석할 수 없는 값이 전달되면, RangeError 가 내부에서 발생되며, Invalid Date 가 생성된다.

ISO 8601

ISO 8601 는 날짜와 시간과 관련된 데이터 교환을 다루는 국제 표준이다. 이 표준은 국제 표준화 기구(ISO)에 의해 공포 되었으며 1988년에 처음으로 공개되었다.

  1. YYYY-MM-DDTHH:mm:ss.sssZ
  2. YYYY-MM-DDThh:mm:ss+hh:mm

형태로 정의가 가능하다.

Date 범위

Date 는 1970년 이후는 물론 이전의 선언도 가능하다.

valueOf 나 getTime 으로 값을 가져올 경우 1970년 1월 1일 0 시 0 분 기준으로 마이너스 로 표현된다.

Date 연산

Date 객체는 참조 값이기 때문에, 서로 다른 객체에 == 연산자를 쓸경우 false 가 반환된다.

Date 객체 valueOf는 Unix Time 정수가 반환되기 때문에 비교 연산이 가능하다.

비교 연산자는 객체의 valueOf 나 toString 를 이용한 primitive 값의 비교가 가능하다.

Date.prototype

- getFullYear     // 년도
- getMonth // 월 0 부터 시작하며, 11로 끝난다.
- getDate // 일
- getHours // 시간
- getMinutes // 분
- getSeconds // 초
- getMilliseconds // 밀리초
- getDay // 요일을 반환한다. 0은 일요일이고 6은 토요일이다.

각 메서드는 UTC 를 지원한다.

각 메서드는 set 을 지원한다.

set 메서드로 정의할때 범위를 넘어간다면, 그 값 만큼 보정 된다.

toJSON 과 toISOString 의 차이

toJSON 은 Date 값을 toISOString() 를 이용해 JSON 문자열을 반환 위해 정의 되었다.

toISOString 는 ISO 8601 문자열을 반환하기 위해 정의 되었다.

toJSON 은 IE 8 부터 지원되며, toISOString 은 IE 9 부터 지원된다.

Date.UTC

Date.UTC 메서드는 1970년 1월 1일 부터의 시간을 밀리초 단위로 반환한다.

기본 생성자를 ( 년, 월, 일, 시, 분, 초, 밀리초 ) 형식으로 선언한다면 local 시간을 기본으로 참조하기 때문에 원하는 형태로 정의되지 않을 수 있다.

--

--

박성룡 ( Andrew park )
박성룡 ( Andrew park )

Written by 박성룡 ( Andrew park )

Javascript is great We may not be great

Responses (1)