JavaScript에서 문자열을 날짜 객체로 변환하려면 Date() 메서드를 사용해야 합니다. 이 메서드는 플랫폼에 독립적인 형식으로 특정 시점을 나타내는 날짜 인스턴스를 생성합니다.
예제
다음 예제에서는 "str"이라는 이름의 문자열을 먼저 JSON.parse() 메서드로 파싱한 후, Date() 메서드를 사용하여 날짜 객체로 변환하는 과정을 보여줍니다.
<html>
<body>
<script>
var str = '{"name":"Ram", "DOB":"1980-11-1", "country":"India"}';
var dateObj = JSON.parse(str);
dateObj.DOB = new Date(dateObj.DOB);
document.write(dateObj.DOB);
</script>
</body>
</html>출력 결과
Thu Nov 01 0198 00:00:00 GMT+0553 (India Standard Time)
코드 설명
위 코드의 동작 과정을 단계별로 살펴보면 다음과 같습니다.
1. JSON 형식의 문자열 str을 선언합니다. 이 문자열에는 이름, 생년월일(DOB), 국가 정보가 포함되어 있습니다.
2. JSON.parse()를 사용하여 문자열을 JavaScript 객체로 변환합니다.
3. 객체의 DOB 속성 값을 new Date() 생성자에 전달하여 날짜 객체로 변환한 뒤 다시 할당합니다.
4. document.write()를 통해 변환된 날짜 객체를 화면에 출력합니다.
참고 사항
문자열이 이미 ISO 8601 형식(예: "1980-11-01")이라면 굳이 JSON.parse()를 거치지 않고 new Date("1980-11-01")처럼 직접 Date() 생성자에 전달해도 됩니다. 또한 출력 결과의 연도가 "0198"로 표시된 것은 "1980-11-1"처럼 월과 일이 한 자릿수로 입력될 경우 일부 환경에서 날짜 문자열이 잘못 해석될 수 있음을 보여주는 예시입니다. 따라서 실무에서는 연도 4자리, 월과 일 2자리 형식(YYYY-MM-DD)을 사용하거나, 복잡한 형식의 문자열은 Moment.js나 date-fns 같은 라이브러리를 활용하는 것이 안전합니다.