30장. Date
- UTC(Coordinated Universal Time): 국제 표준시
- GMT(Greenwich Mean Time): 그리니치 평균시
- KST(Korea Standard Time): 한국 표준시, UTC + 9
- UTC와 GMT는 초의 소수점 단위에서만 차이가 나기 때문에 일상에서는 혼용되어 사용된다.
- 기술적인 표기에는 UTC가 사용된다.
- 현재 날짜와 시간은 JS 코드가 실행된 시스템의 시계에 의해 결정된다.
30-1. Date 생성자 함수
- Date 객체는 내부적으로 날짜와 시간을 나타내는 정수값을 갖는다.
- 1970년 1월 1일 00:00:00(UTC)를 기점으로 Date 객체가 나타내는 날짜와 시간까지의 밀리초를 나타낸다.
- 예를 들어 1970년 1월 2일0시는 정수값 86,400,000(24h * 60m * 60s * 1000ms)를 갖는다.
new Date()
new Date();
Date();
new Date(0);
new Date(86400000);
new Date('May 26, 2020 10:00:00');
new Date('2020/03/26/10:00:00');
new Date(year, month[, day, hour, minute, second, millisecond])
- 연, 월은 반드시 지정해야함.
- Date 객체를 반환함.
- 지정하지 않은 옵션 정보는 0 또는 1로 초기화됨
- month는 0부터 시작
new Date(2022, 05);
new Date('2022/06/12/13:22:00:00');
30-2. Date 메서드
Date.now
- 1970년 1월 1일 00:00:00 (UTC) 기점으로 현재 시간까지 경과한 밀리초를 숫자로 반환
Date.now();
new Date(1655007827703);
Date.parse
- 1970년 1월 1일 00:00:00 (UTC) 기점으로 인수로 전달된 지정시간의까지의 밀리초를 숫자로 반환
Date.parse('Jan 2, 1970 00:00:00 UTC');
Date.parse('Jan 2, 1970 09:00:00');
Date.parse('1970/01/02/09:00:00');
Date.UTC
- UTC를 기점으로 인수로 전달된 지정 시간까지의 밀리초를 숫자로 반환
- new Date(year, month[, day, hour, minute, second, millisecond])와 같은 형식의 인수를 사용해야 한다.
- 인수는 KST가 아닌 UTC로 인식된다.
- month는 0부터 시작한다.
Date.UTC(1970, 0, 2); // 86400000
Date.UTC('1970/1/2'); // NaN
year, month, date, day, hours, minutes, milliseconds, time
new Date('2022/06/12').getFullYear();
const today = new Date();
today.setFullYear(2200);
today.getFullYear();
today.setFullYear(2200, 11, 11);
today.getFullYear();
new Date('2022/06/12').getMonth();
const today = new Date();
today.setMonth(0);
today.getMonth();
today.setMonth(11, 26);
today.getMonth();
new Date('2022/06/12').getDate();
const today = new Date();
today.setDate(1);
today.getDate();
new Date('2022/06/12').getDay();
const today = new Date();
today.setHours(8);
today.getHours();
today.setHours(0, 0, 0, 0);
today.getHours();
new Date('2022/06/12/13:44').getMinutes();
const today = new Date();
today.setMinutes(50);
today.getMinutes();
today.setMinutes(10, 0);
today.getMinutes();
new Date('2022/06/12/13:44:10:150').getMilliseconds();
const today = new Date();
today.setMilliseconds(123);
today.getMilliseconds();
new Date('2022/06/12/13:44').getTime();
const today = new Date();
today.setTime(86400000);
console.log(today);
toXXXString
const today = new Date();
today.getTimezoneOffset();
today.getTimezoneOffset() / 60;
const today = new Date('2022/06/12');
today.toString();
today.toDateString();
const today = new Date('2022/06/12/14:04');
today.toString();
today.toTimeString();
today.toISOString();
today.toISOString().slice(0, 10);
today.toISOString().slice(0, 10).replace(/-/g, '')
const today = new Date('2022/06/12/14:04');
today.toLocaleString();
today.toLocaleString('ko-KR');
today.toLocaleString('en-US');
today.toLocaleString('ja-JP');
today.toLocaleTimeString();
today.toLocaleTimeString('ko-KR');
today.toLocaleTimeString('en-US');
today.toLocaleTimeString('ja-JP');