JavaScript의 Date 객체는 언어에 기본으로 내장된 데이터 타입입니다. Date 객체는 아래와 같이 new Date() 생성자를 사용하여 생성할 수 있습니다.
Date 객체가 한 번 생성되면 다양한 메서드를 통해 객체를 조작할 수 있습니다. 대부분의 메서드는 현지 시간(Local Time) 또는 UTC(협정 세계시, GMT)를 기준으로 객체의 연도, 월, 일, 시, 분, 초, 밀리초 필드를 가져오거나 설정하는 역할을 합니다.
Date 객체의 getUTCDate() 함수는 현재 날짜의 일(day of month)을 세계 표준시(UTC) 기준으로 반환합니다. 반환값은 1부터 31 사이의 정수입니다.
문법(Syntax)
기본 문법은 다음과 같습니다.
dateObj.getUTCDate();
이 함수는 매개변수를 받지 않으며, 호출 대상인 Date 객체 자체는 변경하지 않고 값만 반환합니다.
예제 1 – 특정 날짜에서 일(day) 구하기
아래 예제는 날짜 문자열로 Date 객체를 생성한 후, UTC 기준 일(day)을 출력합니다.
<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(dateObj.getUTCDate());
</script>
</body>
</html>출력 결과
26
예제 2 – 일(day)을 지정하지 않은 경우
날짜 문자열에서 일(day)을 생략하면 기본적으로 1일로 설정됩니다. 다만 이 값이 UTC로 변환되는 과정에서 시간대(timezone) 차이에 따라 전날로 계산되어 31이 출력될 수 있습니다.
<html>
<head>
<title>JavaScript Example</title>
</head>
<body>
<script type="text/javascript">
var dateObj = new Date('September, 1989 00:4:00');
document.write(dateObj.getUTCDate());
</script>
</body>
</html>출력 결과
31
즉, 현지 시간 기준 9월 1일 새벽이 UTC 기준으로는 8월 31일에 해당하기 때문에 이러한 결과가 나타납니다. 시간대 변환에 주의해야 하는 대표적인 사례입니다.
예제 3 – 현재 날짜 기준으로 일(day) 구하기
Date 객체를 생성할 때 생성자에 아무 값도 전달하지 않으면 현재 시각을 기준으로 객체가 생성됩니다. 이 경우 getUTCDate()는 UTC 기준 오늘 날짜의 일(day)을 반환합니다.
<html> <head> <title>JavaScript Example</title> </head> <body> <script type="text/javascript"> var dateObj = new Date(); document.write(dateObj.getUTCDate()); </script> </body> </html>
출력 결과
25
함께 알아두면 좋은 UTC 관련 메서드
getUTCDate() 외에도 Date 객체는 UTC 기준 값을 다루는 다양한 메서드를 제공합니다.
getUTCFullYear()– UTC 기준 연도 반환getUTCMonth()– UTC 기준 월 반환 (0부터 시작)getUTCDay()– UTC 기준 요일 반환 (0: 일요일)getUTCHours(),getUTCMinutes(),getUTCSeconds()– UTC 기준 시, 분, 초 반환
서버와 클라이언트의 시간대가 다른 환경에서 일관된 날짜 값을 다루려면 현지 시간 메서드(getDate() 등) 대신 UTC 계열 메서드를 사용하는 것이 안전합니다.