유닉스 타임스탬프 변환 도구
유닉스 타임스탬프(초 또는 밀리초 단위 에포크)와 사람이 읽기 쉬운 날짜를 서로 변환합니다. 여러 시간대 표시, 현재 시각 즉시 입력, 상대 시간 표시를 지원하는 개발자용 도구입니다.
유닉스 타임스탬프 기초 지식
유닉스 타임스탬프는 1970년 1월 1일 00:00:00 UTC(유닉스 에포크)를 기준으로 경과한 초 수로 날짜와 시각을 나타내는 방식입니다. 아래는 잘 알려진 타임스탬프 값과 그것이 가리키는 날짜를 정리한 표입니다.
| 타임스탬프(초) | UTC 날짜 및 시각 | 비고 |
|---|---|---|
| 0 | 1970-01-01T00:00:00Z | 유닉스 에포크(모든 타임스탬프의 시작점) |
| 1000000000 | 2001-09-09T01:46:40Z | 타임스탬프가 10억 초에 도달한 순간(유닉스 빌레니엄) |
| 1234567890 | 2009-02-13T23:31:30Z | 숫자 1부터 9까지 순서대로 나열되어 화제가 된 값 |
| 2147483647 | 2038-01-19T03:14:07Z | 2038년 문제: 부호 있는 32비트 정수의 최댓값(1초 후 오버플로가 발생) |
사용 팁
- 10자리 숫자는 대체로 초 단위이고, 13자리 숫자는 대체로 밀리초 단위입니다. "자동 감지"를 선택하면 자릿수로 단위를 자동으로 추측합니다.
- 서버 로그나 API 응답의 타임스탬프를 그대로 붙여넣으면 여러 시간대에서의 대응 시각을 한 번에 확인할 수 있습니다.
- 날짜를 타임스탬프로 변환할 때는 입력한 날짜와 시각이 어느 시간대의 시각인지 반드시 명시적으로 선택해야 합니다.
- ISO 8601(UTC) 형식은 대부분의 프로그래밍 언어와 데이터베이스가 그대로 파싱할 수 있어 로그 검색이나 API 설계 시 참고값으로 유용합니다.
- "현재 시각 입력" 버튼을 누르면 브라우저의 Date.now()에서 가져온 현재 시각이 즉시 입력란에 반영됩니다.
자주 묻는 질문
여담 ― 컴퓨터는 왜 "초 단위"로 시간을 세는가
사람은 "2026년 7월 12일 오후 5시 8분"처럼 연월일과 시각을 조합해 날짜를 표현하지만, 컴퓨터에게 이 형식은 다루기 까다롭습니다. 윤년·시간대·서머타임 같은 복잡한 규칙을 매번 고려해야 하고, 두 날짜의 차이를 계산하는 것만으로도 번거로운 처리가 필요합니다. 그래서 고안된 것이 기준 시점으로부터 경과한 초 수라는 단일 숫자만으로 시각을 표현하는 방법이며, 이것이 바로 유닉스 타임스탬프입니다.
시각을 단일 정수로 다룰 수 있다는 가장 큰 장점은 날짜 간의 비교와 덧셈·뺄셈이 단순한 사칙연산으로 귀결된다는 점입니다. "두 이벤트 사이의 간격이 몇 초인가"를 구하려면 타임스탬프의 차이만 계산하면 되며, 윤년이나 월별 일수 차이를 신경 쓸 필요가 전혀 없습니다. 이러한 단순함 덕분에 유닉스 계열 운영체제뿐 아니라 윈도우·데이터베이스·많은 프로그래밍 언어의 내부 표현으로도 채택되어 사실상 세계 표준이 되었습니다.
한편 이 "시간대에 의존하지 않는 단일 숫자"라는 설계는, 사람이 값을 읽는 단계에서 비로소 시간대 변환이 필요해진다는 것을 의미합니다. 같은 타임스탬프라도 도쿄에서 보면 한밤중이고 뉴욕에서 보면 전날 오후인 것처럼, 표시하는 시간대에 따라 겉보기 날짜가 완전히 달라집니다. 로그 조사나 API 연동 디버깅 중 "시각이 어긋난다"며 혼란을 겪는 버그의 상당수는 바로 이 시간대 변환을 놓친 것이 원인인 경우가 많습니다.