Unix 타임스탬프를 사람이 읽을 수 있는 날짜로 변환하는 방법
Unix 타임스탬프를 변환해야 하는 이유
Unix 타임스탬프는 기계에 이상적입니다. 단일 정수는 간결하고 명확하며 정렬하기 쉽습니다. 하지만 사람에게 1785292800은 달력 날짜와 시간으로 변환되기 전까지는 아무 의미가 없습니다. 로그 파일을 디버깅하든, 데이터베이스 레코드를 분석하든, API 응답을 읽든, 타임스탬프를 빠르게 변환하는 방법을 아는 것은 필수적인 기술입니다.
방법 1: 온라인 Unix Timestamp Converter 사용하기
가장 빠르고 신뢰할 수 있는 방법은 전용 변환 도구를 사용하는 것입니다.
**저희 Unix Timestamp Converter**는 초와 밀리초 단위의 타임스탬프를 모두 허용하고, 자동으로 해상도를 감지하며, 여러 시간대에 걸쳐 결과를 동시에 표시합니다. 반대 방향으로도 사용할 수 있습니다. 사람이 읽을 수 있는 날짜를 입력하면 해당 Unix 타임스탬프를 얻을 수 있습니다.
이 방법은 명령줄을 사용하지 않고 빠르게 일회성 변환이 필요할 때 이상적입니다.
방법 2: Linux 명령줄 사용하기 (date 명령어)
Linux 또는 macOS 터미널에 접근할 수 있다면 date 명령어가 가장 좋은 친구입니다.
타임스탬프를 사람이 읽을 수 있는 날짜로 변환
# GNU Linux(대부분의 배포판)
date -d @1785292800
# 사용자 지정 형식 지정
date -d @1785292800 +"%Y-%m-%d %H:%M:%S"
# Output: 2026-07-19 00:00:00
# 시간대 포함
TZ="America/New_York" date -d @1785292800
# Output: Sun Jul 19 00:00:00 EDT 2026
macOS(BSD date)에서는 구문이 약간 다릅니다.
# macOS에서
date -r 1785292800
# 사용자 지정 형식으로
date -r 1785292800 +"%Y-%m-%d %H:%M:%S"
날짜를 Unix 타임스탬프로 변환
# GNU Linux에서
date -d "2026-07-19 00:00:00" +%s
# macOS에서
date -j -f "%Y-%m-%d %H:%M:%S" "2026-07-19 00:00:00" +%s
방법 3: 수동 계산
직접 계산할 일은 거의 없지만, 수학을 이해하면 시스템이 어떻게 작동하는지 더 명확해집니다.
공식
seconds = (year - 1970) × 31536000 + (month offset) × 86400 + day × 86400 + hours × 3600 + minutes × 60 + seconds
까다로운 부분은 윤년을 고려하는 것입니다. 연도가 4로 나누어 떨어지면 윤년이며, 400으로 나누어 떨어지지 않는 세기 연도는 예외입니다.
빠른 근사값
- 86,400초 = 1일
- 604,800초 = 1주
- 약 31,536,000초 = 1 평년
- 약 31,622,400초 = 1 윤년
대략적인 추정을 위해 timestamp / 86400을 계산하여 에포크 이후 경과된 일 수를 구한 다음, 그 일 수를 1970년 1월 1일에 더하면 됩니다.
방법 4: 프로그래밍 언어 사용하기
모든 주요 프로그래밍 언어에는 타임스탬프 변환을 위한 내장 함수가 있습니다. 가장 일반적인 함수는 다음과 같습니다.
JavaScript (브라우저 또는 Node.js)
// 타임스탬프를 날짜로 변환 (JavaScript는 밀리초 사용)
const timestamp = 1785292800;
const date = new Date(timestamp * 1000);
console.log(date.toISOString());
// Output: 2026-07-19T00:00:00.000Z
// 날짜를 타임스탬프로 변환
const ts = Math.floor(new Date("2026-07-19").getTime() / 1000);
console.log(ts);
// Output: 1785292800
Python
from datetime import datetime
# 타임스탬프를 날짜로 변환
dt = datetime.utcfromtimestamp(1785292800)
print(dt.isoformat())
# Output: 2026-07-19T00:00:00
# 시간대 인식 (Python 3.9+)
from zoneinfo import ZoneInfo
dt_tz = datetime.fromtimestamp(1785292800, tz=ZoneInfo("America/New_York"))
print(dt_tz.isoformat())
# Output: 2026-07-19T00:00:00-04:00
# 날짜를 타임스탬프로 변환
import time
ts = time.mktime(datetime(2026, 7, 19).timetuple())
print(ts)
PHP
<?php
// 타임스탬프를 날짜로 변환
echo date("Y-m-d H:i:s", 1785292800);
// Output: 2026-07-19 00:00:00
// 날짜를 타임스탬프로 변환
echo strtotime("2026-07-19 00:00:00");
// Output: 1785292800
방법 5: 스프레드시트 소프트웨어 사용하기
Google Sheets
A1 셀에 타임스탬프가 있을 때 =DATE(1970,1,1) + A1 / 86400 공식을 사용하세요. 결과 셀을 날짜 형식으로 지정하세요.
Microsoft Excel
=DATE(1970,1,1) + A1 / 86400
Windows Excel에서는 다음이 필요할 수 있습니다.
=(A1 / 86400) + DATE(1970,1,1)
주의해야 할 엣지 케이스
초 vs 밀리초
이것이 가장 흔한 실수입니다. 밀리초 값(예: 1785292800000)을 초를 기대하는 함수에 전달하면 약 56,000년 이후의 날짜가 나오게 됩니다.
감지 방법:
- 숫자가 10자리이면 초일 가능성이 높습니다
- 숫자가 13자리이면 밀리초일 가능성이 높습니다
- 일부 시스템은 마이크로초(16자리)나 나노초(19자리)를 사용하기도 합니다
음수 타임스탬프 (1970년 이전 날짜)
Unix 타임스탬프는 음수를 사용하여 에포크 이전의 날짜를 표현할 수 있습니다.
date -d @-126230400
# Output: Tue Dec 31 00:00:00 -1969
모든 변환 도구가 음수 타임스탬프를 올바르게 처리하지는 않습니다. 저희 온라인 변환기는 이를 지원합니다.
윤초
Unix 시간은 설계상 윤초를 무시합니다. Unix 타임스탬프는 윤초가 삽입되는 동안에도 :59:60을 표시하지 않습니다. 이는 타임스탬프가 원자 시간과 작지만(현재 27초) 점진적으로 증가하는 차이를 갖게 됨을 의미합니다.
요약
| 방법 | 적합한 용도 |
|--------|----------|
| 온라인 변환기 (/linux-timestamp) | 빠른 일회성 변환 |
| date 명령어 | 터미널 사용자 및 스크립트 |
| 수동 계산 | 작동 원리 이해 |
| 프로그래밍 언어 | 자동화 및 앱 |
| 스프레드시트 | 데이터 분석 |
자동 시간대 감지와 함께 즉각적이고 정확한 변환을 수행하려면 저희 Unix Timestamp Converter를 사용하세요.