본문 바로가기
개념 정리/모던 자바스크립트 딥다이브

모던 자바스크립트 : Date

by 매진2 2023. 11. 29.
728x90

1. Date 생성자 함수

  • 표준 필트인 객체인 Date는 날짜와 시간(연, 월, 일, 시, 분, 초, 밀리초)을 위한 메서드를 제공하는 빌트인 객체이면서 생성자 함수
  • 현재 날짜와 시간은 자바스크립트 코드가 실행된 시스템의 시계에 의해 결정

UTC와 KST

  • UTC(협정 세계시) : 국제 표준시
    • 그리니치평균시로 불리기도 함
    • UTC와 GMT는 초의 소수점 단위에서만 차이가 나기때문에 일상에서 혼용되어 사용
  • KST : 한국 표준시로 UTC+9

Date 생성자 함수로 생성한 Date 객체는 내부적으로 날짜와 시간을 나타내는 정수값을 가짐

  • 이 값은 1970년 1월 1일 00:00:00을 기점으로 Date 객체가 나타내는 날짜와 시간까지의 밀리초 나타냄
  • 모든 시간의 기점인 1970년 1월 1일 00:00:00 = Date 객체는 정수값 0
  • 1970년 1월 2일 00:00:00 = 86,400,000(24h*60m*60s*1000ms)

Date 생성자 함수로 생성한 Date 객체는 기본적으로 현재 날짜와 시간을 나타내는 정수값 가짐

  • 현재 날짜, 시간이 아닌 다른 날짜, 시간을 다루고 싶은 경우 Date 생성자 함수에 명시적으로 해당 날짜와 시간 정보를 인수로 지정함

a. new Date()

  • Date 생성자 함수를 인수 없이 new 연산자와 함께 호출 시 현재 날짜와 시간을 가지는 Date 객체를 반환
  • Date 객체는 내부적으로 날짜와 시간을 나타내는 정수값을 갖지만 Date 객체를 콘솔에 출력하면 기본적으로 날자와 시간 정보 출력

  • Date 생성자 함수를 new 연산자 없이 호출 시 Date 객체를 반환하지 않고 날짜와 시간 정보를 나타내는 문자열 반환

b. new Date(milliseconds)

  • Date 생성자 함수에 숫자 타입의 밀리초를 인수로 전달하면 UTC를 기점으로 인수로 전달된 밀리초만큼 경과한 날짜와 시간을 나타내는 Date 객체 반환

c. new Date(dateString)

  • Date 생성자 함수에 날짜와 시간을 나타내는 문자열을 인수로 전달하면 지정된 날짜와 시간을 나타내는 Date 객체반환
  • 인수로 전달한 문자열은 Date.parse 메서드에 의해 해석 가능한 형식이어야함

d. new Date(year, month[, day, hour, minute, second, millisecond])

  • Date 생성자 함수에 연, 월, 일, 시, 분, 초, 밀리초를 의미하는 숫자를 인수로 전달 시 지정된 날짜와 시간을 나타내는 Date 객체 반환
  • 연월 반드시 지정해야하며 지정하지 않은 옵션 정보는 0또는 1로 초기화
  • 연, 월 지정하지 않은 경우 UTC를 나타내는 Date 객체 반환

2. Date 메서드

a. Date.now

  • UTC 기점으로 현재 시간까지 경과한 밀리초를 숫자로 반환

b. Date.parse

  • UTC 기점으로 인수로 전달된 지정 시간(new Date(dateString)의 인수와 동일한 형식)까지의 밀리초를 숫자로 반환

c. Date.UTC

  • UTC 기점으로 인수로 전달된 지정 시간까지의 밀리초를 숫자로 반환
  • Date.UTC 메서드는 new Date 와 같은 형식의 인수 사용
  • Date.UTC 메서드의 인수는 로컬 타임이 아닌 UTC로 인식
  • month는 월을 의미하는 0~11까지의 정수이므로 주의

d. Date.prototype.getFullYear

  • Date 객체의 연도를 나타내는 정수 반환

e. Date.prototype.setFullYear

  • Date 객체에 연도를 나타내는 정수 설정
  • 연도 이외에 옵션으로 월, 일 설정 가능

f. Date.prototype.getMonth

  • Date 객체의 월을 나타내는 0~11의 정수 반환

g. Date.prototype.setMonth

  • Date.UTC 객체에 월을 나타내는 0~11의 정수 설정
  • 월 이외에 옵션으로 일도 설정 가능

h. Date.prototype.getDate

  • Date 객체의 날짜(1~31)를 나타내는 정수 반환

i. Date.prototype.setDate

  • Date 객체에 날짜를 나타내는 정수 설정

j. Date.prototype.getDay

  • Date 객체의 요일(0~6)을 나타내는 정수 반환
  • 일요일=0부터 ~토요일=6

k. Date.prototype.getHours

  • Date 객체의 시간(0~23)을 나타내는 정수 반환

k. Date.prototype.setHours

  • Date 객체에 시간(0~23)을 나타내는 정수 설정
  • 시간 이외에 옵션으로 분, 초, 밀리초도 설정 가능

l. Date.prototype.getMinutes

  • Date 객체의 분(0~59)을 나타내는 정수 반환

m. Date.prototype.setminutes

  • Date 객체에 분(0~59)을 나타내는 정수 설정
  • 분 이외에 옵션으로 초, 밀리초 설정 가능

n. Date.prototype.getSeconds

  • Date 객체의 초(0~59)를 나타내는 정수 반환

o. Date.prototype.setSeconds

  • Date 객체에 초(0~59)를 나타내는 정수 설정
  • 초 이외에 옵션으로 밀리초 설정 가능

p. Date.prototype.getMilliseconds

  • Date 객체의 밀리초(0~999)를 나타내는 정수 반환

r. Date.prototype.setMilliseconds

  • Date 객체에 밀리초(0~999)를 나타내는 정수 설정

s.Date.prototype.getTime

  • UTC 기점으로 Date 객체의 시간까지 경과된 밀리초 반환

t. Date.prototype.setTime

  • Date 객체에 UTC 기점으로 경과된 밀리초 설정

u. Date.prototype.getTimezoneOffset

  • UTC와 Date 객체에 지정된 로캘 시간과의 차이를 분 단위로 반환
  • UTC= KST-9h

v. Date.prototype.toDateString

  • 사람이 읽을 수 있는 형식의 문자열로 Date 객체의 날짜 반환

w. Date.prototype.toTimeString

  • 사람이 읽을 수 있는 형식으로 Date 객체의 시간을 표현한 문자열 반환

x. Date.prototype.toISOString

  • ISO 8601 형식으로 Date 객체의 날짜와 시간을 표현한 문자열 반환

y. Date.prototype.toLocaleString

  • 인수로 전달한 로캘을 기준으로 Date 객체의 날짜와 시간을 표현한 문자열 반환
  • 인수 생략 시 브라우저가 동작 중인 시스템의 로캘 적용

z. Date.prototype.toLocaleTimeString

  • 인수로 전달한 로캘을 기준으로 Date 객체의 시간을 표현한 문자열 반환
  • 인수를 생략한 경우 브라우저가 동작 중인 시스템의 로캘 적용

 

 

 

 

모던 자바스크립트 딥다이브를 정리한 내용입니다!!
728x90