YYYY-MM-DD HH:MM:SS
const TIME_ZONE = 9 * 60 * 60 * 1000; // 9시간
const date = new Date('2021-08-05 09:51:31');
new Date(date.getTime() + TIME_ZONE).toISOString().replace('T', ' ').slice(0, -5);
// 2021-08-05 09:51:31
toISOString() 메서드는 "YYYY-MM-DDTHH:mm:ss.sssZ" 형식으로 정보가 반환되며, replace(), slice(0, -5)으로 불필요한 정보를 제거해줍니다.
해당 메서드에서 출력되는 시간은 UTC(미국) 기준으로 출력됩니다. 이를 대한민국 서울 시간에 맞추기 위해서 3240 * 10000(9시간) 수식을 현재 시간에 더해주어야 합니다.
YYYY. MM. DD.
new Intl.DateTimeFormat('kr').format(new Date());
// 2022. 06. 21.
Intl.dateTimeFormat 객체를 이용하여 YYYY. MM. DD.으로 포맷된 날짜 정보를 얻을 수 있습니다.
YYYY-MM-DD
const TIME_ZONE = 9 * 60 * 60 * 1000; // 9시간
new Date(Date().now() + TIME_ZONE).toISOString().split('T')[0];
// 2021-08-05
toISOString() 메서드를 사용해서 "YYYY-MM-DDTHH:mm:ss.sssZ"의 날짜 및 시간 정보를 받아와 줍니다. 해당 형식에서 "T"를 기준으로 잘라 날짜만 가져와줍니다.
HH:MM:SS
new Date().toTimeString().split(' ')[0];
// 09:51:35
"09:51:35 GMT+0900 (한국 표준시)"의 형식에서 공백을 기준으로 잘라 시간 부분만 가져와줍니다.
YYYY-MM-DD
new Date().toLocaleDateString().replace(/\./g, '').replace(/\s/g, '-');
// 2021-08-05
해당 코드는 toLocaleDateString() 메서드를 사용하여 정규식으로 '2021. 08. 5.' 형식에서 점(특수문자)을 제거시킨 코드입니다.
YYYY-MM-DD HH:MM:SS
const TIME_ZONE = 9 * 60 * 60 * 1000; // 9시간
const d = new Date('2021-08-05 09:51:31');
const date = new Date(d.getTime() + TIME_ZONE).toISOString().split('T')[0];
const time = d.toTimeString().split(' ')[0];
console.log(date + ' ' + time);
// 2021-08-05 09:51:31
첫 번째 방식과 또 다른 방법으로 소개된 각각의 두 번째 코드와 세 번째 코드의 정보를 합쳐주게 되면, YYYY-MM-DD hh:mm:ss 형식의 날짜와 시간을 얻을 수 있습니다.
관련 있는 글
도움받은 글
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat