ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 6-6. JavaScript Date객체
    JavaScript 2023. 3. 31. 11:09

    I. 생성자 함수

     

    1. 현재 날짜와 시간

    const now = new Date();
    
    console.log(typeof now);	// object
    console.log(now);	// Fri Mar 31 2023 10:37:00 GMT+0900 (한국 표준시)

     - new와 함께 사용하면 인스턴스 객체

     - 없이 사용하면 문자열 반환 - new Date().toString() 과 같음

     

     

    2. 밀리초 기준

     - 1970년 1월 1일 자정(UTC, 그리니치 평균시)으로부터 인자로 주어진 밀리초만큼 경과한 시간

    console.log(
      new Date(0)	// Thu Jan 01 1970 09:00:00 GMT+0900 (한국 표준시)
    );
    console.log(
      new Date(1000 * 60 * 60 * 24 * 365 * 30)	// Sat Dec 25 1999 09:00:00 GMT+0900 (한국 표준시)
    );

     

     

    3. 단위별 숫자 입력

     - 연, 월, (0부터 시작) 필수

     - 일, 시, 분, 초, 밀리초 옵션 (없을 시 0)

    console.log(
      new Date(2022, 8)	// Thu Sep 01 2022 00:00:00 GMT+0900 (한국 표준시)
    );

     

    4. dateString

     - 특정 형식의 문자열 인식 가능

    ⚠️ 동작이 일관적이지 못함, 브라우저마다 차이가 있을 수 있음 - 권장하지 않음

    console.log(
      new Date('August 20, 2022 14:35:47')	// Sat Aug 20 2022 14:35:47 GMT+0900 (한국 표준시)
    );

     

     

     

    II. 정적 메서드

     

    1. now

     - 현재의 밀리초 숫자값 반환

    console.log(Date.now());	// 1680227633150

     

     

    2. parse, UTC

     - 주어진 시간의 밀리초 숫자값 반환

     - parse 는 dateString, UTC 는 단위별 숫자를 받음

    console.log(
      Date.parse('August 20, 2022 00:00:00 UTC')	// 1660953600000
    );
    
    console.log(
      // ⭐️ 월은 0부터 시작
      Date.UTC(2022, 7, 20, 0, 0, 0)	// 1660953600000
    );

     

     

     

    III. 인스턴스 메서드

     

    1. toString, toDateString, toTimeString

     - 각각 전체, 날짜만, 시간만 나타내는 문자열 출력

     - 시스템(컴퓨터)의 언어 설정별로 다르게 나타남

    const now = new Date();
    
    console.log(
      now.toString()	// Fri Mar 31 2023 10:57:22 GMT+0900 (한국 표준시)
    );
    
    console.log(
      now.toDateString()	// Fri Mar 31 2023
    );
    
    console.log(
      now.toTimeString()	// 10:57:22 GMT+0900 (한국 표준시)
    );

     

     

    2. toLocaleString

     - 주어진 언어 코드를 기준으로 표현한 문자열 반환

     - 인자가 없을 시 시스템의 언어 적용

    const now = new Date();
    
    console.log(
      now.toString()	// Fri Mar 31 2023 10:58:17 GMT+0900 (한국 표준시)
    );

     

     

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

    getter

    const now = new Date();
    console.log(now.toString());
    
    for (i of [
      [ '연:', now.getFullYear() ],	// 연: 2023
      [ '월:', now.getMonth() ], // 0 ~ 11	// 월: 2
      [ '일:', now.getDate() ],	// 일: 31
      [ '요일:', now.getDay() ], // 0부터 일월화수목금토	// 요일: 5
      [ '시:', now.getHours() ],	// 시: 10
      [ '분:', now.getMinutes() ],	// 분: 58
      [ '초:', now.getSeconds() ],	// 초: 43
      [ '밀리초:', now.getMilliseconds() ]	// 밀리초: 453
    ]) {
      console.log(i[0], i[1]); // 위에 주석으로 각각 적어놈
    }

     

    setter

    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());	// Sat Aug 20 2022 14:35:47 GMT+0900 (한국 표준시)

     

     

    4. getTime, setTime

     - 밀리초 숫자값을 set/get

    const date1 = new Date(2020, 7, 20);
    const date1value = date1.getTime();
    console.log(date1.toString());	// Thu Aug 20 2020 00:00:00 GMT+0900 (한국 표준시)
    console.log(date1value);	// 1597849200000
    
    const date2 = new Date();
    console.log(date2.toString());	// Fri Mar 31 2023 11:02:41 GMT+0900 (한국 표준시)
    
    date2.setTime(date1value);
    console.log(date2.toString());	// Thu Aug 20 2020 00:00:00 GMT+0900 (한국 표준시)

     

     

    5. getTimezoneOffset

     - 시스템의 시간대와 UTC의 시간차를 분 단위로 변환

     - 한국의 경우 9시간 차이

    console.log(
      new Date().getTimezoneOffset() / 60	// -9
    );

     

     

    6. toISOString

     - ISO 8061* 형식으로 문자열 반환

     - UTC 기준으로 반환

    const now = new Date();
    
    // 시간차 존재
    console.log(
      now.toISOString()	// 2023-03-31T02:04:58.980Z
    );
    console.log(
      now.toString()	// Fri Mar 31 2023 11:04:58 GMT+0900 (한국 표준시)
    );

     

    ISO 8061 형식이란?

     

    날짜시간과 관련된 데이터 교환을 다루는 국제 표준이며, 국제 표준화 기구(ISO)에 의해 1988년에 공포되었다.

    목적은 날짜와 시간을 표현함에 있어서 명백하고 잘 정의된 방법을 제공함으로써,

    날짜와 시간의 숫자 표현에 대한 오해를 줄이고자함에 있는데,

    숫자로 된 날짜와 시간 작성에 있어서 다른 관례를 가진 나라들간의 데이터가 오갈 때 특히 그렇다.

     

     

     

     

     

     

    'JavaScript' 카테고리의 다른 글

    7-2. JavaScript 배열의 기본 메서드들  (0) 2023.04.03
    7-1. JavaScript 배열의 특징과 생성  (0) 2023.04.02
    6-5. JavaScript Math 객체  (0) 2023.03.31
    6-4. JavaScript Number 객체  (0) 2023.03.31
    6-3. JavaScript String 객체  (0) 2023.03.31
Designed by Tistory.