MCP로 연결 →

계산 입력

공식

광고

결과

UTC Date & Time
2023-11-14 22:13:20
UTC (협정 세계시)
22
13
20
요일 (0=일요일) 2
1970-01-01 이후 경과 일수 19,675

유닉스 타임스탬프 변환기란?

유닉스 타임스탬프(에포크 시간이라고도 합니다)는 1970년 1월 1일 00:00:00 UTC를 기준으로 흐른 총 초(second) 수를 의미하며, 윤초는 계산에 포함하지 않습니다. 이 도구는 이 하나의 정수 값을 사람이 읽을 수 있는 UTC 달력 날짜와 시간으로 변환하고, 해당 날짜의 요일까지 함께 알려줍니다.

1970년 에포크부터 이후 날짜까지 초를 세는 수직선
유닉스 타임스탬프는 에포크, 즉 1970년 1월 1일 자정(UTC) 이후 경과한 초를 셉니다.

사용 방법

초 단위 유닉스 타임스탬프(예: 1700000000)를 붙여넣거나 입력한 뒤 변환을 실행하세요. 변환기는 UTC 기준의 연·월·일·시·분·초와 함께 요일, 그리고 에포크 이후 경과한 일수까지 보여줍니다.

계산 공식 풀이

먼저 초 값을 둘로 나눕니다. 일수 = \(\left\lfloor \frac{\text{ts}}{86400} \right\rfloor\)이고, 나머지가 하루 중 시각이 됩니다.

$$\begin{gathered} \text{Days} = \left\lfloor \frac{\text{Timestamp}}{86400} \right\rfloor, \qquad s = \text{Timestamp} \bmod 86400 \\[1.5em] \text{where}\quad \left\{ \begin{aligned} \text{Hour} &= \left\lfloor \frac{s}{3600} \right\rfloor \\ \text{Minute} &= \left\lfloor \frac{s \bmod 3600}{60} \right\rfloor \\ \text{Second} &= s \bmod 60 \\ (\text{Y},\text{M},\text{D}) &= \text{civil}(\text{Days}) \end{aligned} \right. \end{gathered}$$

그다음 이 일수를 달력 날짜로 변환하는데, 이때 잘 알려진 하워드 힌넌트(Howard Hinnant)의 정수 기반 "days_from_civil" 역알고리즘을 사용합니다. 이 알고리즘은 한 해의 시작을 3월로 옮겨 윤일이 연말에 오도록 함으로써 예외 처리를 피할 수 있게 해 줍니다. 요일은 \((\text{Days} + 4) \bmod 7\)로 구하는데, 1970년 1월 1일이 목요일이었기 때문입니다.

광고
온전한 날과 그날의 남은 초로 나뉜 타임스탬프
타임스탬프를 86400으로 나누면 온전한 날과 그날의 남은 초가 분리됩니다.

계산 예시

\(\text{ts} = 1{,}700{,}000{,}000\)인 경우: 일수 = 19675, 나머지 = 72800초 = 22:13:20입니다.

$$\text{Days} = \left\lfloor \frac{1{,}700{,}000{,}000}{86400} \right\rfloor = 19675, \qquad s = 1{,}700{,}000{,}000 \bmod 86400 = 72800 = 22{:}13{:}20$$

달력 변환 알고리즘은 19675일째를 2023-11-14로 변환합니다. 따라서 최종 결과는 2023-11-14 22:13:20 UTC가 됩니다.

자주 묻는 질문

시간대(타임존)가 반영되나요? 아니요. 결과는 항상 UTC 기준입니다. 한국 시간(KST)으로 보려면 UTC에 9시간을 더하세요. 그 외 지역은 해당 지역의 UTC 오프셋을 더하면 됩니다.

밀리초는 어떻게 하나요? 초 단위만 입력하세요. 밀리초 타임스탬프를 가지고 있다면 먼저 1000으로 나눈 뒤 입력하면 됩니다.

왜 윤초는 처리하지 않나요? 유닉스 시간 자체가 정의상 윤초를 무시하므로, 이 변환기도 동일하게 윤초를 반영하지 않습니다.

최종 업데이트: