← 모든 도구

Unix 타임스탬프 변환기

브라우저에서 Unix 타임스탬프를 날짜로 즉시 변환하거나 반대로도 변환하세요. epoch 시간, 초·밀리초, UTC 주의사항, 2038년 문제를 알아보세요.

두통 없이 Unix 타임스탬프 이해하기

세 명의 개발자에게 지금 몇 시냐고 물으면 앉은 위치에 따라 세 가지 답을 얻을 수 있습니다. Unix 타임스탬프에게 물으면 지구상 모든 사람에게 동일한 단 하나의 숫자를 얻습니다. 그 단일 정수가 바로, 접하게 되는 거의 모든 로그 파일, 데이터베이스 행, API 응답에서 에포크 시간이 조용히 기반을 이루는 이유입니다. 이 페이지는 그 숫자가 무엇을 의미하는지, 양방향으로 어떻게 읽는지, 그리고 어디서 실수하기 쉬운지 설명합니다.

Glowing clock dissolving into a stream of light-digits, representing Unix epoch time
에포크 시간은 1970년부터 앞으로 계속 증가하는 단일 카운터입니다.

Unix 시간이란 무엇인가

Unix 타임스탬프는 윤초를 세지 않고, 1970년 1월 1일 00:00:00 UTC부터 경과한 초의 수입니다. 그 순간을 에포크라고 부르며, 초기 Unix 엔지니어들이 단순히 세기에 편리한 둥근 날짜여서 선택했습니다. 에포크에서 값은 정확히 0입니다. 그 이후 매 초마다 1씩 증가하므로, 숫자는 계속 커집니다. 1970년 이전 날짜도 완전히 유효하며, 음의 정수로 표현됩니다.

이 개념을 POSIX 시간 또는 에포크 시간이라고도 부릅니다. 레이블이 무엇이든, 메커니즘은 동일합니다. 초의 단일 계속 증가하는 카운터. 형식화된 문자열이 아닌 일반 정수이므로, 컴퓨터는 이를 몇 바이트에 저장하고 단순한 뺄셈으로 둘을 비교할 수 있습니다.

초, 밀리초, 그리고 그 이상

고전적인 Unix 시간은 정수 초를 세어, 오늘날 보이는 익숙한 열 자리 숫자를 만듭니다. 하지만 많은 환경에서는 더 세밀한 해상도가 필요합니다. 예를 들어 JavaScript는 밀리초 단위로 작동하여 13자리 값을 생성하며, 일부 시스템은 마이크로초나 나노초까지 사용합니다. 실용적인 규칙: 10자리 숫자는 초, 13자리는 밀리초입니다. 현재 시간을 예상했는데 변환된 날짜가 1970년쯤에 있다면, 밀리초를 초 필드에 입력하거나 그 반대를 했을 가능성이 큽니다. 변환기가 크기를 자동으로 감지하므로 추측할 필요가 거의 없습니다.

개발자들이 타임스탬프를 선호하는 이유

가장 큰 장점은 타임스탬프가 시간대 중립적이라는 것입니다. 정수 1735689600은 도쿄, 베를린, 상파울루에서 동일한 순간을 가리킵니다. 형식화된 로컬 문자열 대신 그 숫자를 저장하면 값이 어떤 시계에 속하는지 의문을 가질 필요가 없습니다. 정렬도 간단합니다. 시간 순서가 수치 순서이기 때문에, 타임스탬프 열에 대한 데이터베이스 인덱스가 파싱 없이 이벤트를 올바르게 정렬합니다. 산술도 마찬가지로 간단합니다. 두 이벤트 사이의 간격은 뺄셈 하나이고, 하루를 추가하는 것은 86400을 더하는 것입니다. 이러한 속성 때문에 로그, 토큰, 캐시, 메시지 큐 모두 에포크 시간을 사용합니다.

양방향 변환

타임스탬프에서 사람이 읽을 수 있는 날짜로 가려면, 초의 카운트를 캘린더에 투영한 다음 원하는 시간대에 맞게 형식화합니다. 반대 방향으로는, 연도, 월, 일, 시간을 받아 어느 시간대로 표현되는지 결정하고 에포크 이후의 초로 다시 축약합니다. 이 도구는 양방향 모두를 즉시 브라우저 내에서 처리하므로, 붙여넣은 내용이 기기를 벗어나지 않습니다. 숫자를 붙여넣어 디코딩하거나, 날짜를 선택하여 인코딩하고, 동시에 UTC와 현지 시간 모두에서 결과를 확인하세요.

Glowing timeline ribbon with a marker sliding along a flowing stream of epoch seconds
하나의 타임라인에 하나의 마커, UTC와 현지 시간 모두로 읽을 수 있습니다.

UTC와 현지 시간, 그리고 흔한 함정

타임스탬프 자체에는 시간대가 없으며, 항상 UTC에 고정되어 있습니다. 혼란은 표시할 때만 나타납니다. 1700000000을 변환했을 때 화면에 저녁 시간이 표시되고 다른 나라의 동료는 오후 시간을 본다면, 아무 문제가 없는 것입니다. 두 사람 모두 다른 현지 시계로 렌더링된 같은 순간을 보고 있습니다. 코드가 로컬 날짜를 UTC인 것처럼 읽거나, 오프셋을 기록하지 않고 벽시계 시간을 기록할 때 버그가 생깁니다. 안전한 습관은 UTC로 저장하고 전송하며, 사람에게 값을 표시하는 마지막 순간에만 현지 오프셋을 적용하는 것입니다. 의심스러울 때는 현지 시간이 아닌 변환기의 UTC 라인과 비교하세요.

2038년 문제

많은 오래된 시스템이 Unix 시간을 부호 있는 32비트 정수로 저장했습니다. 그 필드는 2038년 1월 19일 03:14:07 UTC 1초 후에 공간이 부족해지며, 카운터가 오버플로되어 음수로 감싸져 날짜가 1901년으로 돌아갈 수 있습니다. Y2K와 같은 종류의 문제입니다. 다행히 현대 운영 체제와 언어는 대부분 64비트 타임스탬프로 이동했으며, 이는 약 2920억 년 동안 오버플로되지 않아서 새 코드에서는 비상 상황이 아닌 알아두면 좋은 역사적 호기심입니다.

더 많은 브라우저 기반 도우미는 개발자 도구를 참조하고, 숫자 자체를 다루어야 한다면 계산기가 클릭 한 번 거리에 있습니다.

자주 묻는 질문

Unix 타임스탬프란 무엇인가요?

윤초를 세지 않고, 1970년 1월 1일 00:00:00 UTC부터 경과한 초의 수입니다. 그 시작 순간을 에포크라고 하며, 카운트는 시간이 지남에 따라 계속 증가합니다.

숫자를 변환했더니 왜 1970년 근처 날짜가 나오나요?

초와 밀리초를 혼동했을 가능성이 큽니다. 10자리 숫자는 초이고 13자리 숫자는 밀리초입니다. 밀리초를 초 필드에 입력하면 겉보기 시간이 약 천 분의 일로 줄어들어 에포크 근처에 위치하게 됩니다.

Unix 타임스탬프에 시간대가 있나요?

아니요. 값은 항상 UTC에 고정되어 있습니다. 시간대는 타임스탬프를 사람이 읽을 수 있는 날짜로 표시할 때만 등장하며, 그래서 같은 숫자가 사람마다 다른 시간을 보여줄 수 있습니다.

날짜를 타임스탬프로 역변환하려면 어떻게 하나요?

연도, 월, 일, 시간을 제공하고 그 날짜가 어떤 시간대로 표현되는지 결정하면, 도구가 에포크 이후의 초로 축약합니다. 이 페이지에서 브라우저 내 즉시 양방향 모두 변환할 수 있습니다.

2038년 문제란 무엇인가요?

Unix 시간을 부호 있는 32비트 정수로 저장하는 시스템은 2038년 1월 19일 03:14:07 UTC 1초 후에 오버플로됩니다. 현대 64비트 타임스탬프는 수십억 년 동안 이 문제를 피할 수 있어서, 대부분의 현재 소프트웨어는 영향을 받지 않습니다.

데이터가 서버로 전송되나요?

아니요. 변환은 브라우저 내에서만 실행되므로, 붙여넣는 타임스탬프나 날짜는 사용자의 기기에 머물게 됩니다.