Unix 타임스탬프는 1970년 1월 1일 00:00:00 UTC부터 경과한 초를 나타내는 값입니다. 이 값을 사람이 읽을 수 있는 시간 형식으로 변환하려면 JavaScript의 Date 객체를 활용할 수 있습니다.
핵심 포인트: 밀리초 단위로 변환하기
JavaScript의 Date 객체는 기본적으로 밀리초(millisecond) 단위를 사용합니다. 반면 Unix 타임스탬프는 초(second) 단위이므로, 변환 시 반드시 1000을 곱해야 합니다.
예제 코드
다음은 Unix 타임스탬프를 '시:분:초' 형식으로 변환하는 전체 코드입니다.
<html>
<head>
<title>JavaScript Dates</title>
</head>
<body>
<script>
var unix_time = 1514791901;
// 초 단위 타임스탬프에 1000을 곱해 밀리초로 변환
var date = new Date(unix_time * 1000);
// 시(hour) 구하기
var hrs = date.getHours();
// 분(minute) 구하기
var min = "0" + date.getMinutes();
// 초(second) 구하기
var sec = "0" + date.getSeconds();
document.write("Time- " + hrs + ":" + min.substr(-2) + ":" + sec.substr(-2));
</script>
</body>
</html>실행 결과
Time- 13:01:41
코드 설명
1. 타임스탬프 변환new Date(unix_time * 1000) — 초 단위 타임스탬프에 1000을 곱하여 밀리초 단위로 만든 후 Date 객체를 생성합니다.
2. 시간 요소 추출getHours(), getMinutes(), getSeconds() 메서드를 사용해 각각 시, 분, 초 값을 가져옵니다.
3. 두 자릿수 포맷팅
분과 초 앞에 문자열 "0"을 붙인 뒤 substr(-2)로 마지막 두 자리만 잘라냅니다. 이렇게 하면 5분이 아닌 05분처럼 항상 두 자릿수로 표시됩니다.
참고 사항
getHours() 등의 메서드는 사용자의 현지 시간대(local timezone)를 기준으로 값을 반환합니다. UTC 기준 시간이 필요하다면 getUTCHours(), getUTCMinutes(), getUTCSeconds() 메서드를 대신 사용하세요.