
JavaScript의 Date 오브젝트로부터 "YYYY-MM-DD HH:MM:SS"(예: “2024-09-30 12:34:56”) 형식의 스트링을 생성하는 방법 몇 가지를 정리해본다.
커스텀 함수
Date() 오브젝트로부터 각 월일년시분초를 스트링 결합한다.
아쉽게도 JS에는 포매터 스트링을 지원하는 built-in 날짜 함수가 없다.
참고: 숫자 앞에 0 붙이기(zero padding)
function dateTime() {
const pad = (n, width=2) => String(n).padStart(width, '0')
const now = new Date();
const year = "" + now.getFullYear();
const month = pad(now.getMonth() + 1); //January is 0!
const day = pad(now.getDate())
const hour = pad(now.getHours())
const minute = pad(now.getMinutes())
const second = pad(now.getSeconds())
return `${year}-${month}-${day} ${hour}:${minute}:${second}`;
}“Y-m-d H:i:s” 포맷을 사용하는 국가 로케일 사용
두 번째 방법은 locale의 시간 포맷 자체가 Y-m-d H:i:s인 국가 코드를 사용하는 것이다. 스웨덴(sv-SE)과 리투아니아(lt-LT)의 locale이 이에 해당한다.
가장 간결한 표현방법이다.1
new Date().toLocaleString('sv-SE')
// or
new Date().toLocaleString('lt-LT')그 외
Date.toJSON(), Date.toISOString()도 비슷한 포맷의 ISO 8601(YYYY-MM-DDTHH:mm:ss.sssZ) 스트링을 생성하지만, 타임존이 GMT-0인 값을 출력하므로 주의가 필요하다.
Footnotes
-
처음 보는 개발자의 경우 당황할 수도 있다. 팀 작업에 사용한다면 컨센서스가 필요하다. ↩