Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript Date.setUTCFullYear() 함수 완벽 정리 – UTC 기준 연도 설정 방법

JavaScript의 Date 객체는 언어에 기본적으로 내장된 데이터 타입으로, 아래와 같이 new Date()를 사용하여 생성할 수 있습니다.

Date 객체를 한 번 생성하면 다양한 메서드를 통해 해당 객체를 조작할 수 있습니다. 대부분의 메서드는 현지 시간(local time) 또는 UTC(협정 세계시, GMT) 기준으로 객체의 연도, 월, 일, 시, 분, 초, 밀리초 필드를 읽거나 설정하는 역할을 합니다.

setUTCFullYear() 함수는 Date 객체의 메서드 중 하나로, 연도를 나타내는 정수를 인수로 받아 현재 날짜의 연도 값을 UTC(세계 표준시) 기준으로 교체합니다.

문법(Syntax)

기본 문법은 다음과 같습니다.

dateObj.setUTCFullYear();

필요에 따라 두 번째 인수로 월(0~11), 세 번째 인수로 일(1~31)을 함께 전달하여 연도와 동시에 월·일까지 변경할 수도 있습니다.

예제 1: 기존 날짜의 연도 변경하기

다음 예제에서는 1989년으로 생성된 날짜 객체의 연도를 setUTCFullYear()를 이용해 2018년으로 변경합니다.

<html>
<head>
    <title>JavaScript Example</title>
</head>
<body>
    <script type="text/javascript">
        var dateObj = new Date('september 26, 89 12:4:25:96');
        document.write("Current date: " + dateObj.toUTCString());
        document.write("<br>");
        dateObj.setUTCFullYear(2018);
        document.write("Date after setting the year: " + dateObj.toUTCString());
    </script>
</body>
</html>

출력 결과

Current date: Tue, 26 Sep 1989 06:34:25 GMT
Date after setting the year: Wed, 26 Sep 2018 06:34:25 GMT

연도만 변경되었을 뿐, 월·일·시간 값은 그대로 유지되는 것을 확인할 수 있습니다.

예제 2: 연도 없이 생성한 날짜에 연도 설정하기

날짜 객체를 생성할 때 연도를 지정하지 않았더라도, 이후 setUTCFullYear() 함수를 사용해 UTC 기준으로 연도를 설정할 수 있습니다.

<html>
<head>
    <title>JavaScript Example</title>
</head>
<body>
    <script type="text/javascript">
        var dateObj = new Date('23, August');
        dateObj.setUTCFullYear(2018);
        document.write(dateObj.toDateString());
    </script>
</body>
</html>

출력 결과

Thu Aug 23 2018

예제 3: 빈 생성자로 만든 날짜에 연도 설정하기

마찬가지로 생성자에 아무 값도 전달하지 않고 날짜 객체를 생성한 경우에도 이 함수로 연도를 설정할 수 있으며, 이때 월과 일 값은 현재 날짜의 값이 그대로 유지됩니다.

<html>
<head>
    <title>JavaScript Example</title>
</head>
<body>
    <script type="text/javascript">
        var dateObj = new Date();
        dateObj.setUTCFullYear(2018);
        document.write(dateObj.toDateString());
    </script>
</body>
</html>

출력 결과

Thu Oct 18 2018

참고 사항

위 예제들은 설명을 위해 document.write()를 사용했지만, 이 방식은 레거시 API로 현재는 권장되지 않습니다. 실제 개발 환경에서는 console.log()나 DOM 조작(textContent 등)을 사용해 결과를 출력하는 것이 좋습니다. 또한 현지 시간 기준으로 연도를 설정해야 하는 경우에는 setFullYear()를 사용하면 됩니다.