본문 바로가기

타임스탬프 날짜 변환 방법 완벽 정리 - 초 단위부터 밀리초까지 한번에

1700000000 같은 숫자가 무슨 날짜인지 막막했던 적 있으신가요. 타임스탬프를 날짜로 변환하는 원리와 실전 방법을 코드와 함께 정리했습니다.


타임스탬프 날짜 변환 방법 완벽 정리 - 초 단위부터 밀리초까지 한번에

로그 파일을 열었더니 날짜 자리에 1700000000 같은 숫자만 잔뜩 찍혀 있던 경험, 한 번쯤 있으실 겁니다. API 응답을 받아도 마찬가지입니다. 사람이 읽으라고 만든 게 아닌 것 같은 이 숫자가 바로 타임스탬프입니다. 원리만 알면 변환은 생각보다 간단합니다.

타임스탬프란 무엇인가

타임스탬프(Unix Timestamp)는 1970년 1월 1일 0시 0분 0초(UTC)부터 지금까지 흐른 시간을 초 단위로 센 숫자입니다. 이 기준 시점을 에포크(Epoch)라고 부릅니다.

즉 타임스탬프가 0이면 1970-01-01 00:00:00 UTC를 뜻합니다. 한국 시간(KST, UTC+9)으로는 1970년 1월 1일 오전 9시입니다. 1초가 지날 때마다 숫자가 1씩 커지기 때문에, 컴퓨터끼리 시간을 주고받을 때 가장 다루기 편한 형식입니다.

날짜를 글자로 저장하면 "2026-06-13"인지 "13/06/2026"인지 형식 싸움이 벌어집니다. 타임스탬프는 그냥 정수 하나라서 시간대, 언어, 형식과 무관하게 한 가지로 통일됩니다. 개발 현장에서 타임스탬프를 쓰는 진짜 이유입니다.
참고: 32비트 정수로 타임스탬프를 저장하는 일부 오래된 시스템은 2038년 1월 19일 이후를 표현하지 못합니다. 이를 '2038년 문제'라고 부르며, 최근 시스템은 대부분 64비트로 처리해 사실상 문제가 없습니다.

타임스탬프를 날짜로 변환하는 방법

변환 방법은 크게 세 가지입니다. 상황에 맞게 고르면 됩니다.

  • 온라인 변환기: 숫자 하나만 빠르게 확인할 때. 검색창에 타임스탬프 변환기를 치면 바로 입력해서 결과를 볼 수 있습니다.
  • 엑셀/스프레드시트: 여러 개를 한 번에 표로 변환할 때 가장 효율적입니다.
  • 프로그래밍 코드: 서비스 안에서 자동으로 처리해야 할 때.

엑셀로 변환하기

엑셀에는 타임스탬프 변환 함수가 따로 없어서 직접 계산식을 써야 합니다. A1 셀에 초 단위 타임스탬프가 있다면, 한국 시간 기준으로 아래처럼 입력합니다.

=(A1/86400)+DATE(1970,1,1)+9/24

86400은 하루의 총 초(60×60×24)이고, +9/24는 UTC에 9시간을 더해 한국 시간으로 맞추는 부분입니다. 식을 입력한 뒤 셀 서식을 '날짜' 또는 '사용자 지정(yyyy-mm-dd hh:mm:ss)'으로 바꾸면 사람이 읽는 날짜가 나타납니다.

팁: 결과가 1970년 근처의 엉뚱한 날짜로 나온다면 입력값이 밀리초일 가능성이 높습니다. 그럴 때는 A1 대신 A1/1000을 넣어 초 단위로 먼저 바꾸세요.

프로그래밍 언어별 변환 코드

주요 언어별로 타임스탬프를 날짜로 바꾸는 코드를 정리했습니다. 모두 초 단위 타임스탬프 기준입니다.

언어/환경변환 코드주의점
JavaScriptnew Date(ts * 1000)밀리초를 쓰므로 1000을 곱함
Pythondatetime.fromtimestamp(ts)실행 환경의 시간대를 따름
PHPdate('Y-m-d H:i:s', $ts)date_default_timezone_set 확인
MySQLFROM_UNIXTIME(ts)DB 시간대 설정에 영향받음
Javanew Date(ts * 1000L)long 타입 사용 권장

자바스크립트 예시

웹에서 가장 많이 쓰는 자바스크립트는 한 가지만 기억하면 됩니다. 자바스크립트는 초가 아니라 밀리초를 쓴다는 점입니다.

const ts = 1700000000;
const date = new Date(ts * 1000);
console.log(date.toLocaleString('ko-KR'));

toLocaleString('ko-KR')을 붙이면 브라우저가 자동으로 한국식 날짜 형식과 시간대로 표시해 줍니다.

초 단위와 밀리초 구분하기

변환 과정에서 가장 흔하게 막히는 지점이 단위 문제입니다. 같은 시점을 가리켜도 시스템에 따라 자릿수가 다릅니다.

  • 초 단위: 보통 10자리 숫자 (예: 1700000000)
  • 밀리초 단위: 보통 13자리 숫자 (예: 1700000000000)

구분법은 간단합니다. 자릿수를 세어 보세요. 2001년 이후 현재 시점의 초 단위 타임스탬프는 10자리, 밀리초는 13자리입니다. 13자리 숫자를 초 단위 함수에 그대로 넣으면 수만 년 뒤의 날짜가 나오고, 반대로 10자리를 밀리초로 처리하면 1970년 1월 1일 새벽이 나옵니다.

참고: 자바스크립트와 자바는 밀리초, 파이썬과 PHP, 유닉스 명령어는 초 단위가 기본입니다. 서로 다른 시스템 사이에서 값을 주고받을 때 이 차이를 꼭 확인하세요.

자주 발생하는 실수와 해결법

실무에서 반복적으로 나오는 실수 세 가지와 대처법입니다.

첫째, 시간대 누락입니다. 타임스탬프 자체는 UTC 기준이라 변환만 하면 한국보다 9시간 이른 시각이 나옵니다. 화면에 보여줄 때는 반드시 한국 시간으로 보정하거나 시간대를 명시해야 합니다.

둘째, 단위 혼동입니다. 위에서 설명한 초와 밀리초 구분을 놓치는 경우인데, 변환 결과의 연도만 봐도 바로 알 수 있습니다. 1970년이나 먼 미래가 나오면 단위를 의심하세요.

셋째, 문자열로 들어온 타임스탬프입니다. API 응답에서 숫자가 따옴표에 싸여 문자열로 오는 경우가 많습니다. 이때는 계산 전에 정수로 변환(parseInt, int 등)하는 과정을 빠뜨리지 마세요.

타임스탬프 변환처럼 자주 쓰는 계산 도구는 브라우저에서 바로 처리할 수 있게 만들어 두면 편합니다. 건강 지표를 따질 때 쓰는 BMI 계산기나 자금 계획을 세울 때 쓰는 대출 계산기처럼, 설치 없이 웹에서 즉시 결과를 얻는 도구들이 늘어나는 이유도 같습니다. 반복 작업의 시간을 줄여 주기 때문입니다.

정리하면, 변환 전에 단위(초/밀리초)를 확인하고, 결과를 한국 시간으로 보정하는 두 가지만 챙기면 타임스탬프는 더 이상 암호가 아닙니다. 자주 다룬다면 자신이 쓰는 언어의 변환 한 줄을 메모해 두고, 급할 때는 온라인 변환기로 빠르게 확인하는 습관을 들여 보세요.

3일 무료체험큰손탐지기, 지금 바로 시작하세요

설치 없이 웹에서 바로 사용 가능 · PC & 모바일 지원

무료체험 시작
카카오톡 상담