유닉스 타임스탬프, 쉽게 설명
유닉스 타임스탬프는 1970년 1월 1일 UTC부터 경과한 초입니다. 그 의미와 시스템이 이를 쓰는 이유, 타임스탬프와 날짜를 몇 초 만에 변환하는 방법을 알아보세요.
유닉스 타임스탬프는 유닉스 에포크(1970년 1월 1일 UTC 자정) 이후로 경과한 초입니다. 시스템 시간의 공용어로서, 데이터베이스·로그·API·cron 작업이 모두 이 언어로 소통합니다. 하지만 1726617600을 날짜로 읽으려면 머리로 계산하는 게 아니라 도구가 필요합니다. 타임스탬프 변환기를 열면 양방향으로 읽어줍니다.
TL;DR
유닉스 타임스탬프는 시간대에 상관없이 하나의 순간을 가리키는 단일 정수입니다.
- 1970년 1월 1일 UTC 이후의 초 — 에포크입니다. 숫자 하나로 순간 하나, 오전·오후나 서머타임으로 다툴 일이 없습니다.
- 양방향 변환 — 타임스탬프를 사람이 읽는 날짜로, 또 날짜를 타임스탬프로, 브라우저 안에서 바로 바꿉니다.
- 업로드 없음 — 변환은 로컬에서 돌아가므로 타임스탬프 값이 기기를 떠나지 않습니다.
유닉스 타임스탬프란 무엇인가
유닉스 에포크는 1970-01-01 00:00:00 UTC입니다. 유닉스 타임스탬프는 단지 그 순간부터 몇 초가 지났는지를 센 것입니다. 값 0이 에포크 자체이고, 1700000000은 2023년 11월 중순의 한 순간입니다. 1초가 지날 때마다 숫자가 1씩 커집니다.
시스템이 이에 의존하는 이유는 세 가지 문제를 한꺼번에 해결하기 때문입니다.
- 모호함이 없다.
07/09/26은 미국에서는 7월 9일, 유럽 많은 지역에서는 9월 7일을 뜻합니다. 타임스탬프는 어디서든 단 하나의 의미만 갖습니다. - 시간대가 없다. 세계 시계상의 하나의 순간을 가리킵니다. 누구든 어디서든 자신의 오프셋을 적용해 시각을 읽습니다.
- 정렬·비교가 쉽다. 숫자가 클수록 나중 순간이므로 정렬은 단순한 숫자 순서입니다. 날짜를 파싱할 필요가 없습니다.
이 마지막 성질이 로그, 캐시 키, 데이터베이스의 created_at 컬럼이 서식화된 문자열이 아니라 정수로 저장하는 일이 흔한 이유입니다.
초, 밀리초, 그리고 그 너머
전통적인 유닉스 타임스탬프는 초를 셉니다. 유닉스의 date +%s 명령은 초를 줍니다. 하지만 자바스크립트 — 그래서 모든 브라우저·Node 서비스·Date.now() 호출 — 은 밀리초를 셉니다. 같은 순간이 각기 다르게 보입니다.
- 초:
1700000000 - 밀리초:
1700000000000(끝에 0이 세 개 더)
이를 헷갈리면 1970년이나 서기 5만 년의 날짜가 나옵니다. 타임스탬프 변환기는 이 둘은 물론 그 이상까지 다룹니다. 단위 선택기는 자동, 초, 밀리초, 마이크로초, 나노초를 아우릅니다. 자동 모드에서는 자릿수로 단위를 추론합니다 — 10자리는 초, 13자리는 밀리초, 16자리는 마이크로초, 19자리는 나노초 — 그래서 직접 고를 일이 거의 없습니다. 명시적으로 단위를 고르면 그 선택이 우선합니다.
단계별: 타임스탬프 변환하기
- 방향을 고른다. 변환 모드에서 타임스탬프에서 날짜(숫자 → 사람이 읽는 날짜) 또는 날짜에서 타임스탬프(사람이 읽는 날짜 → 숫자)를 고릅니다.
- 값을 입력한다. 타임스탬프에서 날짜에서는 숫자 타임스탬프를 입력합니다. 날짜에서 타임스탬프에서는 날짜와 시간 필드로 순간을 고릅니다.
- 단위를 고른다. 타임스탬프 단위 목록에서 자동, 초, 밀리초, 마이크로초, 나노초를 고릅니다. 의도적으로 제어하지 않는다면 자동이면 충분합니다.
- 시간대를 고른다. 시간대 목록은 9개의 주요 지역(다음 섹션 참고)을 제공하여 읽기 쉬운 결과가 기대하는 시각을 반영하게 합니다.
- 변환을 누른다. 변환 결과 패널에 Unix 초, Unix 밀리초, ISO UTC, RFC 2822, UTC, 로컬, 선택한 시간대, 상대 시간이 표시됩니다 — 전체 복사를 한 번 누르면 전부 가져옵니다.
지금 순간이 필요한가요? 상단의 띠는 매 초마다 갱신되며 현재 초·밀리초·ISO 값을 보여주고, 현재 동작이 그 값을 입력 칸에 채워 넣습니다.
시간대와 9개 지역 목록
타임스탬프 자체는 시간대를 갖지 않습니다 — 세계 시계상의 한 순간입니다. 시간대는 그것을 시계 날짜로 그려낼 때만 관여합니다. 이 변환기는 9개의 고정 시간대 목록을 제공합니다: UTC, 로컬, America/New_York, Europe/London, Europe/Berlin, Asia/Tokyo, Asia/Seoul, Asia/Singapore, Australia/Sydney. 이들이 주요 지역을 두루 덮어, 대부분의 개발자가 실제로 일정을 잡는 범위를 포함합니다.
이것은 자유 입력 IANA 지역 선택기가 아닙니다. 찾는 도시가 목록에 없다면 로컬(브라우저 자체의 시간대를 씁니다)이나 UTC를 고르고 거기서부터 직접 변환하세요. 선택한 시간대는 결과의 “선택 시간대” 줄을 결정합니다. UTC와 로컬 줄은 항상 표시되므로 늘 모호함 없는 기준점이 있습니다.
한계와 정직한 주의사항
결과에 의존하기 전에 알아둘 제약이 몇 가지 있습니다.
- 9개의 고정 시간대, 자유 입력 없음.
America/Sao_Paulo나Asia/Kolkata는 입력할 수 없습니다. 로컬이나 UTC를 쓰고 오프셋을 직접 적용하세요. - 날짜 범위에 상한이 있다.
8,640,000,000,000,000밀리초(대략 275760년)를 넘는 값은 브라우저의 안전 범위를 벗어나 “안전하지 않은 범위” 오류를 반환합니다. 이는 자바스크립트Date의 상한이지 도구 고유의 제한이 아닙니다. - 상대 시간은 근사치다. 상대 수치는 순간에서 도출된 것으로 빠른 확인용이지, 출시를 위한 정확한 카운트다운이 아닙니다.
자주 묻는 질문
유닉스 타임스탬프는 초인가요, 밀리초인가요?
어디서 왔느냐에 따라 다릅니다. 전통적인 유닉스 타임스탬프는 초입니다(date +%s). 자바스크립트의 Date.now()는 밀리초를 반환합니다. 차이는 끝의 0 세 개입니다. 값을 붙여 넣었더니 1970년이나 수천 년 뒤의 날짜가 나오면 단위를 헷갈린 것입니다 — 타임스탬프 단위 선택기를 바꾸거나, 자동이 자릿수로 판별하게 두세요.
유닉스 타임스탬프는 어느 시간대인가요?
사실상 UTC입니다. 타임스탬프는 세계 시계상의 단일 순간을 가리키므로 로컬 오프셋이 내장되어 있지 않습니다. 이것을 사람이 읽는 날짜로 읽을 때 적용하는 시간대가 시각을 만들어냅니다. 변환기는 늘 UTC 줄을 표시해 모호함 없는 기준을 주고, 로컬과 선택한 시간대를 더해 보여줍니다.
제 로컬 시간대로 변환할 수 있나요?
네, 목록의 9개 시간대 중 하나라면 가능합니다. 브라우저의 현재 시간대를 쓰려면 로컬을 고르거나, 목록에서 특정 시간대를 고르세요. 찾는 시간대가 9개 선택지에 없다면 자유 입력은 없습니다 — 로컬이나 UTC를 쓰고 거기서부터 오프셋을 적용하세요.
에포크(epoch)란 무엇인가요?
에포크는 고정된 기준점 1970-01-01 00:00:00 UTC입니다. 유닉스 타임스탬프는 그 순간부터의 초(또는 밀리초, 마이크로초, 나노초)의 카운트입니다. 에포크 자체가 타임스탬프 0이고, 음수 타임스탬프는 1970년 이전 날짜로 거꾸로 셉니다.

이 도구로 시작
지금 시작하기