본문 바로가기
Programming/Javascript

[Javascript] 내장 객체 - Date 객체

by Bam_t 2021. 3. 17.
728x90
Date 객체의 특정 메소드를 찾으러 오신 분들은 Ctrl+F로 검색해주세요. 감사합니다.

이번에 나오는 Date 객체는 이름에서 느껴지듯 날짜(+시간)에 대한 데이터를 다루는데 사용되는 객체입니다.


0. 협정 세계시와 로컬 시간

 자바스크립트를 다루다가 갑자기 시간 퀴즈? 라고 생각될 수 있지만 간단히 알아두고 넘어가야합니다. 우리는 상식으로 우리가 사는 곳의 시간과 다른 나라에서의 시간은 다르다고 알고 있습니다. 웹에서도 이러한 개념이 필요합니다. 인터넷은 국경없이 전세계와 소통한다고 하지만 그만큼 하나의 기준이 필요하기도 하기 때문이죠.

 

 우선 로컬은 당연하게도 사용자가 위치한 지역을 말합니다. 사용자가 대한민국에서 접속했다면 대한민국의 표준 시간(날짜)를 받아오고 미국에서 접속했다면 미국의 표준 시간을 가져오도록 하는게 로컬입니다.

 반면 협정시는 전세계적으로 통일된 시간체계입니다. UTC(Universal Time Coordinate)라고 줄여씁니다. 협정시는 전세계적으로 통일된 체계이므로 군사, 과학쪽에서 많이 사용되는 체계입니다. 추가적으로 사족을 덧붙이자면 영국 런던의 그리니치 천문대의 시간을 기준으로 삼아서 영국 런던이 기준점입니다.

 

잡설이 많았는데 한 줄로 요약하면 로컬 시간은 현재 위치한 지역의 시간이고, 협정시는 전세계적으로 통일된 시간 체계임만 기억하고 다음 내용을 살펴보면 될 것 같습니다.

 

 

 

 

1. 시간을 취득하는 메소드들

메소드 (로컬) 메소드 (협정시) 설명
getFullYear() getUTCFullYear() 년도를 취득(4자리 YYYY)
getMonth() getUTCMonth() 월을 취득(0~11)
getDate() getUTCDate() 일을 취득(1~31)
getDay() getUTCDay() 요일을 취득(일: 0~토: 6)
getHours() getUTCHours() 시를 취득(0~23)
getMinutes() getUTCMinutes() 분을 취득(0~59)
getSeconds() getUTCSeconds() 초를 취득(0~59)
getMilliseconds() getUTCMilliseconds() 밀리초를 취득(0~999)
getTime() 1970/01/01 00:00:00로 부터 경과한 시간을 밀리초로 취득
getTimezoneOffset() 협정세계시와의 시차

다음의 시간 설정 메소드도 마찬가지지만 로컬 시간에서 UTC만 붙이면 협정시를 구하는 메소드로 변환됩니다.

또한 월을 취득하는 메소드는 0~11이라는 점, 요일 취득에서 일요일을 0으로 잡고 시작하는 점도 주의하면 좋습니다.

 

이건 중요한건 아니고 상식적인 문제인데 getTime()이 왜 뜬금없는 1970/01/01 00:00:00인지에 대한 물음이 생깁니다.

 위에서 나온 날짜와 시간은 '유닉스 시간'이라는 이름을 가진 특정한 시간입니다. 유닉스를 개발하던 중 시간 체계가 필요하자 유닉스 개발 기간에 있던 1970/01/01일자를 개발자들이 기준으로 잡도록하여 탄생된 시간입니다.

 

 

 

 

2. 시간을 설정 할 수 있는 메소드들

메소드 (로컬) 메소드 (협정시) 설명
setFullYear(y) setUTCFullYear() 년도를 설정(4자리 YYYY)
setMonth(m) setUTCMonth() 월을 설정(0~11)
setDate(d) setUTCDate() 일을 설정(1~31)
setHours(h) setUTCHours() 시를 설정(0~23)
setMinutes(m) setUTCMinutes() 분을 설정(0~59)
setSeconds(s) setUTCSeconds() 초를 설정(0~59)
setMilliseconds(ms) setUTCMilliseconds() 밀리초를 설정(0~999)
setTime(t) 1970/01/01 00:00:00로 부터 경과한 시간을 밀리초로 설정

 

 

 

 

 

3. 날짜와 시간의 문자열 변환 메소드

메소드 설명
toUTCString() 협정세계시를 문자열로 취득
toLocaleString() 로컬시를 문자열로 취득
toDateString() 일을 문자열로 취득
toTimeString() 시각을 문자열로 취득
toLocaleDateString() 날짜를 지역에 맞는 문자열로 취득
toLocaleTimeString() 시각을 지역에 맞는 문자열로 취득
toString() 일시를 문자열로 취득
toJSON() 일시를 JSON문자열로 취득

마지막에 JSON이라는 이야기가 나오는데 JSON을 간단하게 말하자면 Javascript에서 이용되는 객체 리터럴 형식과 유사한 데이터 포맷의 종류입니다. 더 간단하게 이야기하면 데이터를 우리가 배운 객체와 같은 형태를 가진 문서(데이터)라고 보면 됩니다.

 

 

 

 

4. 시간에 대한 해석 메소드

메소드 설명
parse(date) 날짜 문자열을 해석하여 1970/01/01 00:00:00로 부터 경과한 시간을 밀리초로 취득
UTC(y, m, d, [h, m(분), s, ms]) 날짜에 대한 정보를 1970/01/01 00:00:00로 부터 경과한 시간을 협정시로 밀리초로 취득
now() 협정세계시를 기준으로 현재 날짜를 1970/01/01 00:00:00로 부터 경과한 시간을 밀리초로 취득

 

728x90

댓글