date.toJSON() 메서드란?
date.toJSON()은 JavaScript에 기본으로 내장된 함수로, 특정 Date 객체의 내용을 문자열 형태로 변환할 때 사용됩니다. Date 객체는 Date() 생성자를 이용해 만들 수 있습니다.
이 메서드가 반환하는 문자열은 ISO 8601 표준 형식(YYYY-MM-DDTHH:mm:ss.sssZ)을 따르며, 시간대는 항상 UTC(협정 세계시) 기준입니다. 또한 JSON.stringify()가 객체를 직렬화할 때 이 메서드를 자동으로 호출하기 때문에, 날짜 데이터를 JSON으로 처리할 때 매우 유용하게 활용됩니다.
문법
dateObj.toJSON();
이 메서드는 별도의 매개변수를 받지 않습니다. 생성된 Date 객체와 함께 호출하기만 하면 되며, Date() 생성자에 담긴 내용을 변환한 문자열을 반환합니다. 참고로 유효하지 않은(Invalid) 날짜 객체에 이 메서드를 호출하면 null이 반환됩니다.
예제 1: 단일 날짜 변환하기
다음 예제에서는 date.toJSON() 메서드를 사용해 하나의 날짜를 문자열로 변환하고, 그 결과와 데이터 타입을 화면에 출력합니다.
<html>
<body>
<script>
var dateobj = new Date('October 19, 1993 05:35:32');
var B = dateobj.toJSON();
document.write(B + " 그리고 타입은 " + typeof B);
</script>
</body>
</html>
출력 결과
1993-10-19T00:05:32.000Z 그리고 타입은 string
실행 결과를 보면 날짜가 ISO 8601 형식의 문자열로 변환되었으며, typeof 연산자로 확인한 데이터 타입 역시 string임을 알 수 있습니다.
예제 2: 여러 날짜 변환하기
다음 예제에서는 date.toJSON() 메서드를 사용해 여러 개의 날짜를 한 번에 문자열로 변환하고, 각 결과를 줄바꿈하여 출력합니다.
<html>
<body>
<script>
var do1 = new Date('7');
var do2 = new Date('9, 8');
var do3 = new Date('4, 15, 19');
var x = do1.toJSON();
var y = do2.toJSON();
var z = do3.toJSON();
document.write(x);
document.write("<br>");
document.write(y);
document.write("<br>");
document.write(z);
</script>
</body>
</html>
출력 결과
2001-06-30T18:30:00.000Z
2001-09-07T18:30:00.000Z
2019-04-14T18:30:00.000Z
이처럼 toJSON() 메서드를 활용하면 어떤 형태로 생성된 Date 객체든 손쉽게 JSON 호환 문자열로 변환할 수 있습니다. API 통신이나 데이터 저장 등 날짜 정보를 주고받아야 하는 다양한 상황에서 실무 활용도가 매우 높은 메서드이니 꼭 익혀두시기 바랍니다.