엑셀에서 유닉스 타임(Epoch) 값을 날짜로 바꾸는 수식을 초·밀리초·역변환·구글 시트까지 정리했습니다. 로그나 DB에 숫자로 찍힌 시간을 엑셀에서 날짜로 바꿔 봐야 할 때가 있었습니다.
목차
한눈에 보기
- 초 단위(10자리):
=A1/86400+DATE(1970,1,1)+9/24 - 밀리초 단위(13자리):
=A1/86400000+DATE(1970,1,1)+9/24 - 날짜 → Epoch(역변환):
=ROUND((A1-DATE(1970,1,1)-9/24)*86400,0) - 구글 시트: 위 수식 그대로 쓰거나
=EPOCHTODATE(A1)+9/24 - 표시 형식: 셀 서식 → 사용자 지정 →
yyyy-mm-dd hh:mm:ss
+9/24는 한국 시간(KST)으로 보정하는 부분입니다. UTC 그대로 보고 싶다면 빼면 됩니다.
유닉스 타임(Epoch)과 엑셀 날짜의 차이
유닉스 타임은 1970년 1월 1일 00:00:00(UTC)부터 지난 시간을 초 단위로 센 숫자입니다. 서버 로그, 데이터베이스, API 응답에서 시각을 이런 숫자로 저장하는 경우가 많습니다. 반면 엑셀은 날짜를 "1900년 1월 1일을 1로 하는 일련번호"로 저장하고, 하루를 1, 한 시간을 1/24로 표현합니다.
그래서 변환의 핵심은 두 가지입니다. 첫째, 초를 일 단위로 바꾸기 위해 86400(하루의 초)으로 나눕니다. 둘째, 기준일이 다르므로 1970년 1월 1일의 엑셀 일련번호인 25569를 더합니다. 이 두 단계를 거치면 UTC 기준 날짜가 나오고, 한국 시간이 필요하면 9시간을 더합니다.
초 단위 Epoch를 날짜로 바꾸는 수식
A1 셀에 10자리 Epoch 값이 있다면 아래 수식을 씁니다.
=A1/86400+DATE(1970,1,1)+9/24
DATE(1970,1,1)이 바로 25569입니다. 숫자를 직접 적어도 결과는 같지만, 함수로 적어 두면 나중에 수식을 봤을 때 무엇을 더한 것인지 바로 알 수 있습니다. 9시간 보정은 +9/24 대신 +TIME(9,0,0)으로 적어도 됩니다.
365*70+19는 무엇인가
2022년에 이 블로그에 처음 올렸던 수식은 =A1/86400+365*70+19+9/24였습니다. 여기서 365*70+19를 계산하면 25569로, DATE(1970,1,1)과 같은 값입니다. 19가 붙는 이유는 세 가지를 합친 것입니다.
- 1904년부터 1968년까지의 윤년 17일
- 엑셀이 실제로는 없는 1900년 2월 29일을 윤년으로 잘못 세는 1일 (로터스 1-2-3과의 호환 때문에 남아 있는 버그)
- 엑셀 일련번호가 1900년 1월 1일을 0이 아닌 1로 시작하는 1일
결과는 맞지만 읽기 어려운 수식이므로, 지금은 DATE(1970,1,1)을 쓰는 쪽을 권합니다.
실제 값으로 확인하기
1649908627을 넣어 보면 다음과 같습니다.
| 단계 | 값 |
|---|---|
| Epoch(초) | 1649908627 |
| 엑셀 일련번호(UTC) | 44665.1646643519 |
| UTC 날짜·시각 | 2022-04-14 03:57:07 |
| 한국 시간(KST) | 2022-04-14 12:57:07 |

▲ 유닉스 타임을 엑셀 날짜로 바꾸는 수식 한눈에 보기
밀리초(13자리) 값 변환하기
자바스크립트의 Date.now()나 일부 로그는 밀리초 단위로 기록하기 때문에 자릿수가 13자리입니다. 이때는 86400이 아니라 86400000으로 나눕니다.
=A1/86400000+DATE(1970,1,1)+9/24
자릿수를 확인하지 않고 초 단위 수식을 쓰면 결과가 엑셀의 날짜 범위(9999년 12월 31일)를 넘어가서, 셀 너비를 아무리 늘려도 #####로만 표시됩니다. 값이 10자리인지 13자리인지 먼저 세어 보는 습관이 가장 확실합니다.
날짜를 Epoch로 되돌리는 역변환
반대로 엑셀에 입력한 한국 시간을 Epoch 초로 바꿔야 할 때도 있습니다. API 요청 파라미터를 만들거나, 특정 시각 이후의 로그만 걸러 낼 때가 그렇습니다. A1에 한국 시간 기준 날짜·시각이 있다면 아래처럼 씁니다.
=ROUND((A1-DATE(1970,1,1)-9/24)*86400,0)
9시간을 빼서 UTC로 돌린 뒤, 1970년 1월 1일과의 차이를 초로 바꾸는 순서입니다. 엑셀은 날짜를 소수로 계산하기 때문에 곱셈 결과에 1649908626.99999처럼 아주 작은 오차가 남을 수 있습니다. 바깥을 ROUND(...,0)로 감싸 정수로 맞춰 두면 안전합니다. 밀리초가 필요하면 86400 대신 86400000을 곱합니다.
입력 종류별 수식 정리
| 입력 종류 | 수식 |
|---|---|
| Epoch 초(10자리) → 한국 시간 | =A1/86400+DATE(1970,1,1)+9/24 |
| Epoch 초(10자리) → UTC | =A1/86400+DATE(1970,1,1) |
| Epoch 밀리초(13자리) → 한국 시간 | =A1/86400000+DATE(1970,1,1)+9/24 |
| 한국 시간 → Epoch 초 | =ROUND((A1-DATE(1970,1,1)-9/24)*86400,0) |
| 공백이 섞인 Epoch 초(텍스트) → 한국 시간 | =VALUE(TRIM(A1))/86400+DATE(1970,1,1)+9/24 |
| 구글 시트 Epoch 초 → 한국 시간 | =EPOCHTODATE(A1)+9/24 |
셀 표시 형식 지정하기
수식을 넣으면 처음에는 44665.53966처럼 숫자로 보입니다. 결과 셀을 선택하고 Ctrl+1로 셀 서식을 연 뒤, 표시 형식에서 사용자 지정을 고르고 형식 칸에 yyyy-mm-dd hh:mm:ss를 입력하면 2022-04-14 12:57:07처럼 표시됩니다.
2022년 글에서는 [$-409]yyyy"-"m"-"d h:mm:ss AM/PM;@ 형식을 썼습니다. 앞의 [$-409]는 영어(미국) 로캘을 뜻해서 오전/오후가 AM/PM으로 영문 표시됩니다. 24시간 표기가 필요하면 위의 yyyy-mm-dd hh:mm:ss가 더 읽기 쉽습니다.
구글 시트에서 변환하기
구글 시트에서도 위의 엑셀 수식이 그대로 동작합니다. 여기에 더해 구글 시트에는 전용 함수 EPOCHTODATE가 있습니다.
=EPOCHTODATE(A1)+9/24
=EPOCHTODATE(A1,2)+9/24
첫 번째 줄은 초 단위, 두 번째 줄은 두 번째 인수 2를 넣어 밀리초 단위로 변환합니다. 주의할 점은 EPOCHTODATE의 결과가 UTC라는 것입니다. 시트의 시간대 설정과 상관없이 UTC로 나오므로 한국 시간이 필요하면 +9/24를 꼭 붙여야 합니다. 표시 형식은 메뉴의 서식 → 숫자 → 맞춤 날짜 및 시간에서 바꿀 수 있습니다.
자주 하는 실수
- 결과가 숫자로만 보인다: 수식은 맞고 표시 형식이 적용되지 않은 상태입니다. 위의 사용자 지정 형식을 지정하면 날짜로 보입니다.
- 결과가
#####로 표시된다: 13자리 밀리초 값을 초 단위 수식으로 계산해 엑셀 날짜 범위(9999년)를 넘긴 경우입니다. 셀 너비와는 상관이 없으니 86400000으로 나누는 수식을 쓰세요. - 시간이 정확히 9시간 다르다: 시간대 보정을 빠뜨렸거나 두 번 더한 경우입니다. 원본 값은 UTC 기준이라는 점을 기억하고
+9/24를 한 번만 더합니다. - #VALUE! 오류가 난다: CSV나 로그에서 가져온 값에 앞뒤 공백, 줄바꿈, 따옴표 같은 문자가 섞인 경우입니다. 숫자만 들어 있는 텍스트는 엑셀이 계산할 때 알아서 숫자로 바꾸므로, 셀 왼쪽 위의 초록 삼각형만으로는 계산이 깨지지 않습니다. 공백이 문제라면
=VALUE(TRIM(A1))/86400+DATE(1970,1,1)+9/24를 쓰고, 따옴표가 붙어 있다면SUBSTITUTE(A1,"""","")로 먼저 따옴표를 지웁니다.
마무리
Epoch 변환은 "86400으로 나누고, 1970년 1월 1일을 더하고, 한국 시간이면 9시간을 더한다" 세 단계만 기억하면 됩니다. 밀리초 값은 86400000으로 나누고, 역변환은 같은 과정을 거꾸로 한 뒤 ROUND로 정리합니다.
2022년에 올린 엑셀 유닉스 타임 변환 글의 내용을 밀리초, 역변환, 구글 시트까지 넓혀 다시 정리한 글입니다. 앞으로는 이 글을 기준으로 내용을 갱신하겠습니다.
자주 묻는 질문 (FAQ)
Q. 25569 대신 DATE(1970,1,1)을 써도 결과가 같나요?
네, 같습니다. DATE(1970,1,1)의 값이 25569이므로 계산 결과는 완전히 같고, 수식의 의미가 드러난다는 점만 다릅니다.
Q. 맥용 엑셀에서도 같은 수식을 쓰면 되나요?
현재 맥용 엑셀의 기본 설정은 윈도우와 같은 1900 날짜 체계라 같은 수식을 쓰면 됩니다. 다만 오래된 파일에서 "1904 날짜 체계 사용" 옵션이 켜져 있으면 결과가 1462일(약 4년) 어긋나므로, 파일 옵션의 계산 항목에서 이 설정을 확인하세요.
이 글은 AI(Claude)가 공식 자료를 확인해 초안을 쓰고, 제가 읽고 검토해 발행했습니다. 글에 들어간 도식도 AI와 함께 만들었습니다.
'IT 팁' 카테고리의 다른 글
| PHP2Shell 취약점 정리: 내 서버가 해당되는지 확인하고 패치하는 법 (0) | 2026.11.09 |
|---|