타임스탬프 변환기

Unix 타임스탬프와 날짜를 실시간으로 변환하세요.

현재 Unix 타임스탬프
0

Unix 타임스탬프(Epoch time)를 넣으면 UTC·브라우저 현지 시간·ISO 8601·밀리초 값으로 보여 주고, 날짜·시간(UTC 기준)을 넣으면 타임스탬프로 바꿔 줘요. 한국 시간이라면 9시간을 빼고 넣으세요. API 디버깅·로그 분석·DB 점검·JWT 만료 확인에서 매일 한 번씩 만나요.

초·밀리초 자릿수 식별

  • 10자리(예: 1711843200): 초 단위 — Unix·Python time()·PHP·MySQL
  • 13자리(예: 1711843200000): 밀리초 — JavaScript Date.now()·Java
  • 16자리: 마이크로초 (드뭄)

이 도구는 10자리 이하는 초, 11자리 이상은 밀리초로 읽어요. 마이크로초 값은 뒤 3자리를 떼고 넣으세요.

JavaScript에서 백엔드 초 단위를 받으면 * 1000을 잊지 마세요. 가장 흔한 실수예요.

시간대 함정

타임스탬프 자체에는 시간대가 없어요. 항상 UTC 기준이에요. 한국(KST)은 UTC+9이라 같은 숫자가 한국에서는 9시간 앞서 보여요.

사고 패턴:

  • DB에 KST로 저장 → 다른 지역 사용자에게 잘못된 시간
  • 서머타임 적용국(미국·유럽) → 4월·10월 경계에 1시간 어긋남
  • 화면 노출 직전에만 로컬 변환, 저장은 UTC로

Y2K38 문제

32비트 정수로 초 단위 timestamp를 저장하던 옛 시스템은 2038-01-19 03:14:07 UTC에 한계예요. 그 이후로는 음수로 돌아가요.

현대 시스템은 64비트로 사실상 무한이지만, MySQL TIMESTAMP 타입(기본 32비트), 임베디드·IoT, 옛 C 코드는 대비 필요. 새 프로젝트는 DATETIME 또는 64비트 BIGINT로.

자주 묻는 질문

JWT의 iat·exp는 어떤 단위예요?

초 단위 Unix timestamp예요(RFC 7519). JavaScript에서 비교할 때 Date.now() / 1000로 맞춰야 해요.

ISO 8601 문자열을 타임스탬프로 어떻게 바꿔요?

JavaScript: new Date('2024-03-31T00:00:00Z').getTime() → 밀리초. /1000해서 초 단위로.

`new Date(ts)`가 1970년으로 나와요?

초 단위 timestamp를 그대로 넣은 거예요. JavaScript는 밀리초를 기대하니까 * 1000이 필요해요.

Epoch가 왜 1970년 1월 1일이에요?

유닉스(Unix) 운영체제가 1970년 전후에 개발되면서 그때를 기준점(POSIX epoch)으로 잡았어요. 그래서 모든 Unix timestamp는 '1970-01-01 00:00:00 UTC 이후 흐른 초'를 뜻해요. 윤초(leap second)는 무시해서, 천문 시각과는 미세하게 어긋날 수 있어요.

출처 · 근거 자료