관리 메뉴

ㄴrㅎnㅂrㄹrㄱi

Javascript 와 Date 날짜 본문

프로그래밍/JAVASCRIPT

Javascript 와 Date 날짜

님투 2019. 9. 24. 21:51
반응형

방성룡님의 글 (박성룡 ( Andrew park ))

 

출처 : https://medium.com/@pks2974/javascript-%EC%99%80-date-%EB%82%A0%EC%A7%9C-cf638c05f8f3

 

 

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

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

Unix Time

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

유닉스 시간 - 위키백과, 우리 모두의 백과사전

Edit description

ko.wikipedia.org

 

UTC

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

협정 세계시 - 위키백과, 우리 모두의 백과사전

국제 전기 통신 연합은 협정 세계시에 대한 통일된 약자를 원했다. 그런데 영어권의 사람들과 프랑스어권의 사람들은 각각 자신의 언어로 된 약자인 CUT()와 TUC()를 사용하길 원했다. 이 분쟁은 결국 두 언어…

ko.wikipedia.org

GMT

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

그리니치 평균시 - 위키백과, 우리 모두의 백과사전

그리니치 평균시(~平均時, Greenwich Mean Time, GMT)또는 그리니치 표준시는 런던을 기점으로 하고, 웰링턴에 종점으로 설정되는 협정 세계시의 기준 시간대 이다. 기준시간대여서 그리니치 표준시중…

ko.wikipedia.org

 

- 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

형태로 정의가 가능하다.

ISO 8601 - 위키백과, 우리 모두의 백과사전

ISO 8601 Data elements and interchange formats - Information interchange - Representation of dates and times은 날짜와 시간과…

ko.wikipedia.org

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 시간을 기본으로 참조하기 때문에 원하는 형태로 정의되지 않을 수 있다.

 

반응형
Comments