home강의 홈으로
Section 6. 주요 빌트인 객체
Lesson 6. Date 객체

날짜와 시간 관련 기능들을 제공하는 빌트인 객체

👉 MDN 문서 보기


I. 생성자 함수

1. 현재 날짜와 시간

const now = new Date(); console.log(typeof now); console.log(now); const nowStr = Date() console.log(typeof nowStr); console.log(nowStr);
  • new와 함께 사용하면 인스턴스 객체
  • 없이 사용하면 문자열 반환 - new Date().toString()과 같음


2. 밀리초 기준

  • 1970년 1월 1일 자정(UTC, 그리니치 평균시)으로부터 인자로 주어진 밀리초만큼 경과한 시간
  • ⚠️ 이 강의에서의 자정은 해당 일 0시 0분 0초 의미
console.log( new Date(0) ); console.log( new Date(1000 * 60 * 60 * 24 * 365 * 30) );

3. 단위별 숫자 입력

  • 연, 월 ( 0부터 시작 ) 필수
  • 일, 시, 분, 초, 밀리초 옵션 없을 시 0
console.log( new Date(2022, 8) ); console.log( new Date(2022, 8, 20, 14, 35) ); console.log( new Date(2022, 8, 20, 14, 35, 47, 789) );

4. dateString

  • 특정 형식의 문자열 인식 가능
  • ⚠️ 동작이 일관적이지 못함, 브라우저마다 차이 존재 - 권장하지 않음
console.log( new Date('August 20, 2022 14:35:47') ); console.log( new Date('2022-08-20T14:35:47') );



II. 정적 메서드

1. now

  • 현재의 밀리초 숫자값 (앞으로 UTC 1970/1/1 자정부터 경과값 의미) 반환
console.log(Date.now());

2. parse, UTC

  • 주어진 시간의 밀리초 숫자값 반환
  • parse는 dateString, UTC는 단위별 숫자를 받음
console.log( Date.parse('August 20, 2022 00:00:00 UTC') ); console.log( // 💡 시스템(실행 컴퓨터) 시간이 한국이면 시차 9시간 적용 Date.parse('August 20, 2022 09:00:00') ); console.log( // ⭐️ 월은 0부터 시작 Date.UTC(2022, 7, 20, 0, 0, 0) );



III. 인스턴스 메서드

1. toString, toDateString, toTimeString

  • 각각 전체, 날짜만, 시간만 나타내는 문자열 출력
  • 시스템(컴퓨터)의 언어 설정별로 다르게 나타남
const now = new Date(); console.log( now.toString() ); console.log( now.toDateString() ); console.log( now.toTimeString() );

2. toLocaleString

  • 주어진 언어 코드를 기준으로 표현한 문자열 반환
  • 인자가 없을 시 시스템의 언어 적용
const now = new Date(); console.log( now.toString() ); console.log( now.toLocaleString() ); console.log( now.toLocaleString('ko-KR') ); console.log( now.toLocaleString('en-US') ); console.log( now.toLocaleString('de-DE') );

3. 단위별 setter, getter 메서드들

const now = new Date(); console.log(now.toString()); for (i of [ [ '연:', now.getFullYear() ], [ '월:', now.getMonth() ], // 0 ~ 11 [ '일:', now.getDate() ], [ '요일:', now.getDay() ], // 0부터 일월화수목금토 [ '시:', now.getHours() ], [ '분:', now.getMinutes() ], [ '초:', now.getSeconds() ], [ '밀리초:', now.getMilliseconds() ] ]) { console.log(i[0], i[1]); }


const now = new Date(); console.log(now.toString()); now.setFullYear(2022); now.setMonth(7); now.setDate(20); // 💡 요일은 setter가 없음 now.setHours(14); now.setMinutes(35); now.setSeconds(47); now.setMilliseconds(789); console.log(now.toString());

⭐️ 활용예

const now = new Date(); const year = now.getFullYear(); const month = now.getMonth() + 1; const date = now.getDate(); const day = '일월화수목금토'[now.getDay()]; console.log( `오늘은 ${year}년 ${month}월 ${date}일, ${day}요일입니다.` );

4. getTime, setTime

  • 밀리초 숫자값을 set/get
const date1 = new Date(2020, 7, 20); const date1value = date1.getTime(); console.log(date1.toString()); console.log(date1value); const date2 = new Date(); console.log(date2.toString()); date2.setTime(date1value); console.log(date2.toString());

5. getTimezoneOffset

  • 시스템의 시간대와 UTC의 시간차를 분 단위로 반환
  • 한국의 경우 9시간 차이
console.log( new Date().getTimezoneOffset() / 60 );

6. toISOString

  • 🔗 ISO 8061이란 형식의 문자열 반환
  • UTC 기준으로 반환
const now = new Date(); // 시간차 존재 console.log( now.toISOString() ); console.log( now.toString() );

⭐️ 현재시각으로 맞추기

const now = new Date(); const timezoneOffset = now.getTimezoneOffset() * 60000; const isoStr = new Date(now.getTime() - timezoneOffset).toISOString(); console.log(isoStr); console.log(now.toString());

🤔얄코에게 질문하기질문은 반.드.시 이리로 보내주세요! ( 강의사이트 질문기능 ✖ )

강의에서 이해가 안 되거나 실습상 문제가 있는 부분,
설명이 잘못되었거나 미흡한 부분을 메일로 알려주세요!

답변드린 뒤 필요할 경우 본 페이지에
관련 내용을 추가/수정하도록 하겠습니다.

이메일 주소
yalco@yalco.kr
메일 제목 (반드시 아래 제목을 붙여넣어주세요!)
[질문] 제대로 파는 자바스크립트 (무료 파트) 6-6

🛑질문 전 필독!!

  • 구글링을 먼저 해 주세요. 들어오는 질문의 절반 이상은 구글에 검색해 보면 1분 이내로 답을 찾을 수 있는 내용들입니다.
  • 오류 메시지가 있을 경우 이를 구글에 복붙해서 검색해보면 대부분 짧은 시간 내 해결방법을 찾을 수 있습니다.
  • 강의 페이지에 추가사항 등 놓친 부분이 없는지 확인해주세요. 자주 들어오는 질문은 페이지에 추가사항으로 업데이트됩니다.
  • "유료파트의 강의페이지는 어디 있나요?" - 각 영상의 시작부분 검은 화면마다 해당 챕터의 강의페이지 링크가 있습니다.
  • 질문을 보내주실 때는 문제가 어떻게 발생했고 어떤 상황인지 등을 구체적으로 적어주세요. 스크린샷을 첨부해주시면 더욱 좋습니다.
🌏 Why not change the world?