TIL 14. Java Script - Date Object

신미영·2021년 4월 23일
0

Java Script

목록 보기
9/17

자바스크립트의 내장 객체 중 많이 쓰이는 'Date 객체'에 대해 정리해 보려고 한다.



Date 객체의 특성

  • Date 객체는 생산자 함수로서의 역할도 한다.
  • Date 생산자 함수로 만든 객체는 숫자값을 갖게 되는데 이는 1970년 1월 1일 00:00(UTC)를 기준으로 현재까지의 밀리초(1000분의 1초)를 나타낸다.
  • 현재의 날짜와 시간은 시스템 시계의 설정(timezone, 시간)에 따라 결정 된다.


Date constructor

Date 생성자 함수가 생성하는 인스턴스는 기본적으로 현재 날짜와 시간을 나타내는 값을 가지게 되지만, 함수에 명시적으로 해당 날짜와 시간 정보를 인수로 지정하면 다른 값을 갖을 수 있다. Date 생성자 함수로 객체를 생성하는 방법은 4가지가 있다.

  • new Date() - 인수 없이 인스턴스를 생성하여 현재 날짜와 시간을 갖는다.
const date = new Date();
console.log(date); // Fri Apr 23 2021 20:16:13 GMT+0900 (한국 표준시) 출력
  • new Date(milliseconds) - 인수로 밀리초를 전달하여 1970년 1월 1일 00:00(UTC)를 기점으로 밀리초 만큼 경과한 날짜와 시간을 갖는다.
date = new Date(86400000);  // 86400000ms = 1d
console.log(date); // Fri Jan 02 1970 09:00:00 GMT+0900 (한국 표준시)
  • new Date(dateString) - 인수로 날짜와 시간을 나타내는 문자열을 전달하면 지정된 날짜와 시간을 갖는다.
let date = new Date('Apr 23, 2021 20:20:10');
console.log(date); // Fri Apr 23 2021 20:20:10 GMT+0900 (한국 표준시)
  • new Date(year, month[, day, hour, minute, second, millisecond]) - 인수로 년, 월, 일, 시, 분, 초, 밀리초를 전달하면 지정된 날짜와 시간을 가지는 인스턴스를 반환한다. 년, 월은 반드시 지정해야 하고 지정하지 않은 옵션은 0 또는 1로 초기화된다.
let date = new Date(2021, 3);
console.log(date); // Thu Apr 01 2021 00:00:00 GMT+0900 (한국 표준시)

** 날짜와 시간 문자열로 반환하기
Date 생성자 함수를 new 연산자없이 호출하면 결과값을 문자열로 반환한다.

let date = Date();
console.log(typeof date, date); // string Fri Apr 23 2021 20:16:13 GMT+0900 (한국 표준시) 출력

** 인수로 날짜, 시간 전달 시 아래와 같이 전달 해야 한다!



Date method

  • Date.now() - 1970년 1월 1일 00:00:00(UTC)을 기점으로 현재 시간까지 경과한 밀리초를 숫자로 반환한다.
const now = Date.now();
console.log(now);  //1619184894278
  • Date.parse() - 1970년 1월 1일 00:00:00(UTC)을 기점으로 인수로 전달된 시간까지의 밀리초를 숫자로 반환한다.
d = Date.parse('Jan 2, 1970 09:00:00'); // KST
console.log(d); // 86400000
  • Date.UTC() - 1970년 1월 1일 00:00:00(UTC)을 기점으로 인수로 전달된 시간까지의 밀리초를 숫자로 반환한다. 다만, Date.UTC 메소드는 new Date(year, month[, day, hour, minute, second, millisecond])와 같은 형식의 인수를 사용해야 한다. Date.UTC 메소드의 인수는 local time(KST)가 아닌 UTC로 인식된다.
let d = Date.UTC(1970, 0, 2);
console.log(d); // 86400000
  • Date.prototype.get날짜/시간() - 아래와 같이 년도부터 밀리초까지의 값을 반환할 수 있다.
const today = new Date(); // Fri Apr 23 2021 20:16:13 GMT+0900 (한국 표준시)
const year = today.getFullYear(); // 년도를 4자리 숫자로 반환 -> 2021
const month = today.getMonth(); // 1월(0) ~ 12월(11)의 정수 반환 -> 3
const date = today.getDate(); // 날짜(1 ~ 31)를 나타내는 정수 반환 -> 23
const day = today.getDay(); // 일요일(0) ~ 토요일(6)을 나타내는 정수 반환 -> 5
const hours = today.getHours(); // 시간(0 ~ 23)를 나타내는 정수 반환 -> 20
const minutes = today.getMinutes(); // 분(0 ~ 59)를 나타내는 정수 반환 -> 16
const seconds = today.getSeconds(); // 초(0 ~ 59)를 나타내는 정수 반환 -> 13
const ms = today.getMilliseconds(); //밀리초(0 ~ 999)를 나타내는 정수 반환 -> 248
  • Date.prototype.set날짜/시간() - 날짜부터 밀리초까지 날짜/시간을 설정한다.
const today = new Date(); 
const year = today.setFullYear(); 
const month = today.setMonth(); 
const date = today.setDate(); 
const hours = today.setHours(); 
const minutes = today.setMinutes(); 
const seconds = today.setSeconds(); 
const ms = today.setMilliseconds(); 
  • Date.prototype.getTime() - 1970년 1월 1일 00:00:00(UTC)를 기점으로 현재 시간까지 경과된 밀리초를 반환한다.
const today = new Date();
const time = today.getTime();
console.log(time); // 1619186088044
  • Date.prototype.setTime() - 1970년 1월 1일 00:00:00(UTC)를 기점으로 현재 시간까지 경과된 밀리초를 설정한다.
const today = new Date();
today.setTime(86400000); // = 1d
console.log(today); // Fri Jan 02 1970 09:00:00 GMT+0900 (한국 표준시)
  • Date.prototype.getTimezoneOffset() - UTC와 지정 로케일 시간의 차이를 분단위로 반환한다.
const today = new Date();
const x = today.getTimezoneOffset();
console.log(x); // -540 (-9h)
  • Date.prototype.toDateString() - 문자열로 날짜를 반환한다.
const d = new Date('2021/4/23/18:30');
console.log(d.toDateString()) // Fri Apr 23 2021
  • Date.prototype.toTimeString() - 문자열로 시간을 반환한다.
const d = new Date('2021/4/23/18:30');
console.log(d.toTimeString()); // 18:30:00 GMT+0900 (한국 표준시)
profile
Hello World!

0개의 댓글