[Javascript] Date

SungWoo·2024년 11월 3일

자바스크립트 공부

목록 보기
22/42
post-thumbnail

자바스크립트의 표준 빌트인 객체인 Date 객체는 날짜와 시간을 처리할 수 있는 유용한 객체이다. Date 객체를 사용하면 특정 날짜와 시간을 생성하거나, 현재 시간을 불러오는 등의 다양한 작업이 가능하므로 제대로 정리하고 넘어가보자.

Date 객체 생성

1. 현재 날짜와 시간을 기준으로 생성

  • Date 생성자 함수를 new 연산자와 함께 호출하면 현재 날짜와 시간을 가지는 Date 객체를 반환한다.
  • Date 객체는 내부적으로 날짜와 시간을 나타내는 정수값을 갖는다.
    (하지만 Date 객체를 콘솔에 출력하면 기본적으로 날짜와 시간 정보를 출력한다.)
  • Date 생성자 함수를 new 연산자 없이 호출하면 Date 객체가 아닌 날짜와 시간 정보를 나타내는 문자열을 반환한다.
const now = new Date();
console.log(now); // Sun Nov 03 2024 21:05:27 GMT+0900 (한국 표준시)
Date(); // 'Sun Nov 03 2024 21:06:37 GMT+0900 (한국 표준시)'

2. 특정 날짜와 시간을 기준으로 생성

  • new Date(year, monthIndex, day, hour, minute, second, millisecond) 형식을 사용한다.
  • 여기서 monthIndex는 0부터 시작하므로 0이 1월, 11이 12월을 나타낸다.
const specificDate = new Date(2023, 0, 1, 10, 30, 0, 0); // 2023년 1월 1일 오전 10시 30분

3. 문자열 형식으로 날짜 생성

  • 날짜 문자열을 입력하면 해당 날짜를 기준으로 객체를 생성한다.
  • 문자열 형식은 YYYY-MM-DD가 가장 일반적이며, YYYY/MM/DD도 사용할 수 있다.
const dateFromString = new Date("2023-01-01");

4. 타임스탬프를 이용하여 생성

  • 1970년 1월 1일 00:00:00 UTC 이후의 밀리초를 나타내는 숫자 값을 넣으면 해당 시간을 생성한다.
const dateFromTimestamp = new Date(1672531200000);

Date 메서드

Date.now

  • 현재 시각의 타임스탬프를 밀리초 단위로 변환한다.
  • 1970년 1월 1일 00:00:00 UTC 를 기점으로 현재 시간까지 경과한 밀리초를 숫자로 반환한다.
const timestamp = Date.now();
console.log(timestamp); // 예: 1698875098123

Date.parse

  • 날짜 문자열을 파싱하여 타임스탬프로 변환한다.
  • 1970년 1월 1일 00:00:00 UTC 를 기점으로 전달된 지정 시간까지의 밀리초를 숫자로 반환한다.
const timestamp = Date.parse("2024-11-03T14:30:00");
console.log(timestamp); // 예: 1730653800000

Date.UTC

  • UTC(협정 세계시) 기준 날짜와 시간의 타임스탬프를 생성한다.
  • 1970년 1월 1일 00:00:00 UTC 를 기점으로 인수로 전달된 지정 시간까지의 밀리초를 숫자로 반환한다.
const timestampUTC = Date.UTC(2024, 10, 3, 14, 30, 0);
console.log(timestampUTC); // 예: 1730653800000

1. 날짜와 시간 정보 가져오기

getFullYear

  • Date 객체의 연도를 나타내는 정수를 반환한다.
const year = now.getFullYear(); // 2024

getMonth

  • Date 객체의 월(0~11)을 나타내는 정수를 반환한다. (0이 1월, 11이 12월)
const month = now.getMonth(); // 0 (1월)

getDate

  • Date 객체의 날짜(1~31)를 나타내는 정수를 반환한다.
const day = now.getDate(); // 1일

getDay

  • Date 객체의 요일(0~6)을 나타내는 정수를 반환한다. (0이 일요일, 6이 토요일)
const dayOfWeek = now.getDay(); // 예: 2 (화요일)

getHours

  • Date 객체의 시간(0~23)을 나타내는 정수를 반환한다.
const hours = now.getHours(); // 예: 14 (오후 2시)

getMinutes

  • Date 객체의 분(0~59)을 나타내는 정수를 반환한다.
const minutes = now.getMinutes(); // 예: 30

getSeconds

  • Date 객체의 초를 나타내는 정수를 반환한다.
const seconds = now.getSeconds(); // 예: 45

getMilliseconds

  • Date 객체의 밀리초(0~999)를 나타내는 정수를 반환한다.
const milliseconds = now.getMilliseconds(); // 예: 123

getTime

  • 1970년 1월 1일 00:00:00 UTC 이후 경과한 밀리초를 반환한다.
const timestamp = now.getTime();

2. 날짜와 시간 설정하기

setFullYear

  • 연도, 월, 일을 설정한다.
now.setFullYear(2025, 11, 25); // 2025년 12월 25일로 설정

setMonth

  • 월을 설정한다.
now.setMonth(6); // 7월로 설정

setDate

  • 일을 설정한다.
now.setDate(15); // 15일로 설정

setHours

  • 시간을 설정한다.
now.setHours(18, 30, 0, 0); // 오후 6시 30분으로 설정

setMinutes

  • 분을 설정한다.
date.setMinutes(45, 30, 500); // Sun Nov 03 2024 21:45:30 GMT+0900 (한국 표준시)

setSeconds

  • 초를 설정한다.
date.setSeconds(30, 500); // Sun Nov 03 2024 21:26:30 GMT+0900 (한국 표준시)

setMilliseconds

  • 밀리초를 설정한다.
date.setMilliseconds(500); Sun Nov 03 2024 21:27:20 GMT+0900 (한국 표준시)

setTime

  • 전체 시간을 타임스탬프로 설정한다.
date.setTime(1730653800000); // Mon Nov 04 2024 02:10:00 GMT+0900 (한국 표준시)

getTimezoneOffset

  • UTC와 Date 객체에 지정된 로컬 시간과의 차이를 분 단위로 반환한다.
const timezoneOffset = new Date().getTimezoneOffset();
console.log(timezoneOffset); // 예: -540 (한국 표준시는 UTC+9이므로 -540분)

toDateString

  • Date 객체의 날짜 부분을 사람이 읽기 쉬운 영어 형식의 문자열로 변환한다.
  • 시간 정보는 제외하고 연도, 월, 일만 포함된 문자열을 반환한다.
const date = new Date();
console.log(date.toDateString()); // 예: "Sun Nov 03 2024"

toTimeString

  • Date 객체의 시간 부분을 문자열로 변환한다.
  • 시, 분, 초를 포함하고 시간대 정보까지 함께 표시된다.
const date = new Date();
console.log(date.toTimeString()); // 예: "14:30:00 GMT+0900 (Korean Standard Time)"

toISOString

  • Date 객체를 ISO 8601 형식의 문자열로 변환한다.
  • 이 형식은 국제 표준으로 UTC(협정 세계시)를 기준으로 변환되며 항상 Z(UTC를 의미)를 끝에 붙여준다.
const date = new Date();
console.log(date.toISOString()); // 예: "2024-11-03T05:30:00.000Z"

toLocaleString

  • Date 객체를 로컬 형식에 맞춰 날짜와 시간을 문자열로 변환한다.
  • 브라우저나 환경의 로컬 설정에 따라 형식이 달라지며 특정 언어와 형식을 지정할 수 있다.
const date = new Date();
console.log(date.toLocaleString("ko-KR")); // 예: "2024. 11. 3. 오후 2:30:00"

toLocaleDateString

  • 로컬에 맞춰 날짜를 문자열로 변환한다.
const date = new Date();
const formattedDate = date.toLocaleDateString("ko-KR", {
    year: "numeric",
    month: "long",
    day: "numeric",
    weekday: "long"
});
console.log(formattedDate); // 예: "2024년 11월 3일 일요일"

toLocaleTimeString

  • 로컬에 맞춰 시간을 문자열로 변환
const formattedTime = date.toLocaleTimeString("ko-KR", {
    hour: "2-digit",
    minute: "2-digit",
    second: "2-digit",
    hour12: false
});
console.log(formattedTime); // 예: "14:30:00"
profile
어제보다 더 나은

0개의 댓글