본문 바로가기
Web/Javascript

Date format 변경 (yyyy-mm-dd hh:mm:ss)

by TheWhisperOfLeaves 2021. 9. 12.

Date format 변경 (yyyy-mm-dd hh:mm:ss)

기존에 흔히 알려진 방법은 new Date()로 새로운 Date 객체를 받고 메서드를 이용하여 연도, 월, 일, 시, 분, 초를 반환받아 이를 문자열로 연결하여 사용하는 방법인데, 이보다 깔끔하고 괜찮은 방법을 발견했다.

const date = new Date().toISOString().replace('T', ' ').substring(0, 19);
  1. Date 객체를 toISOString() 메서드를 이용하여 ISO 8601 확장 형식에 맞춰진 문자열로 반환받는다. 그러면 '2021-09-11T14:57:58.761Z' 형식으로 문자열을 리턴받음.
  2. 1에서 반환 받은 문자열에 T를 공백으로 치환한다.
  3. substring을 사용하여 인덱스 0부터 19전까지의 값을 받는다.

두 번째는 위 방법을 정규표현식으로 구하는 방법인데 다음과 같다.

const date = new Date().toISOString().replace(/T/, ' ').replace(/\..+/, '');
  1. toISOString()까진 동일하고, 정규표현식으로 T와 dot(.)을 포함한 이후 내용들까지 치환하여 반환받는다.

정규표현식을 사용하는게 첫 번째보다 체감으로 느끼긴 힘들지만 더 느리고, 굳이 포맷 변환을 하는데 정규표현식까지 쓸 필요는 없다는 것 같다.

출처 및 참고: https://stackoverflow.com/questions/10645994/how-to-format-a-utc-date-as-a-yyyy-mm-dd-hhmmss-string-using-nodejs

댓글