유닉스 타임스탬프를 날짜로 변환기: 12/24시간 형식 지원
유닉스 타임스탬프 변환기는 초, 밀리초, 마이크로초 단위를 자동으로 인식해 타임스탬프를 달력 날짜와 시각으로 바꾼다. 결과는 12시간제 또는 24시간제로 선택해 볼 수 있으며, 개발자와 데이터 분석 작업에 유용한 무료 온라인 도구다.
유닉스 타임스탬프 변환기
유닉스 타임스탬프는 1970년 1월 1일 (UTC) 이후 경과한 초의 수입니다.
변환된 날짜 및 시간
유닉스 타임스탬프란?
유닉스 타임스탬프는 1970년 1월 1일 (자정 UTC/GMT) 이후 경과한 초의 수로, 윤초를 포함하지 않습니다. 유닉스 시스템과 프로그래밍 언어에서 날짜 및 시간 계산에 널리 사용됩니다.
문서화
유닉스 타임스탬프를 날짜로 변환
유닉스 타임스탬프는 특정 시점을 나타내는 숫자입니다. 유닉스 에포크라고 하는 시점인 1970년 1월 1일 UTC 자정 이후 경과한 전체 초를 셉니다. 이 도구는 유닉스 타임스탬프를 달력 날짜와 시각으로 변환하며, 24시간제 또는 12시간제 형식으로 표시합니다.
유닉스 타임스탬프를 날짜로 변환하는 방법
기본 공식은 간단합니다.
날짜 = 유닉스 에포크(1970-01-01, 00:00:00 UTC) + 타임스탬프(초 단위)
초를 나타내는 원시 숫자를 날짜로 바꾸려면 1970년 1월 1일에 해당 초만큼을 더합니다. 그런 다음 결과를 년, 월, 일, 시, 분, 초로 나누어야 합니다. 이 과정은 윤년(2월에 하루를 더함)과 월마다 날짜 수가 다르다는 사실을 고려해야 하므로 어렵습니다. 대부분의 프로그래밍 언어에는 이 작업을 자동으로 수행하는 내장 날짜 함수가 있으므로, 누구도 이를 단계별로 직접 계산할 필요가 없습니다.
풀이 예시
타임스탬프 1609459200을 사용합니다.
- 하루의 초 수로 나눕니다: 1,609,459,200 ÷ 86,400 = 18,628일.
- 윤년을 고려하면서 1970년 1월 1일부터 앞으로 18,628일을 셉니다.
- 계산 결과는 2021년 1월 1일에 도달합니다.
따라서 1609459200은 금요일, 2021년 1월 1일, 00:00:00 UTC로 변환됩니다. 같은 일수 계산에서 요일인 금요일도 함께 도출됩니다.
변환기는 UTC가 아니라 브라우저가 보고하는 시간대의 결과를 표시합니다. 뉴욕의 독자는 같은 타임스탬프를 목요일인 2020년 12월 31일 19:00:00으로 보게 됩니다. 해당 날짜에 뉴욕이 UTC보다 5시간 늦었기 때문입니다.
타임스탬프는 음수일 수도 있으며, 이는 1970년 이전의 날짜를 나타냅니다. 예를 들어 -86400은 에포크보다 정확히 하루 전인 1969년 12월 31일 00:00:00 UTC를 뜻합니다.
타임스탬프 정밀도: 초, 밀리초 및 마이크로초
모든 시스템이 시간을 초 단위로 측정하는 것은 아닙니다. 이 변환기는 타임스탬프의 자릿수를 확인하여 정밀도를 추정합니다.
| 숫자 | 정밀도 | 예 |
|---|---|---|
| 10 | 초 | 1609459200 |
| 13 | 밀리초 | 1609459200000 |
| 16 | 마이크로초 | 1609459200000000 |
음수 타임스탬프에는 빼기 기호 때문에 문자가 하나 더 포함됩니다. 따라서 -1609459200(11자, 숫자 10자리)은 여전히 초 단위로 읽힙니다. 그 밖의 자릿수는 일반적인 초 단위로 처리됩니다. 위의 초 공식을 적용하기 전에 밀리초 및 마이크로초 값은 각각 1,000 또는 1,000,000으로 나눕니다.
12시간제 및 24시간제 형식
변환기는 하루 중 시각을 표시하는 두 가지 방법을 제공합니다.
- 24시간제 형식은 오전·오후 표시 없이 0시부터 23시까지 시간을 셉니다. 프로그래머들은 이를 군대식 시간이라고 부르기도 합니다. 오후 3:00은 15:00으로 씁니다.
- 12시간제 형식은 1시부터 12시까지 시간을 표시하며, 자정부터 정오까지는 AM을, 정오부터 자정까지는 PM을 추가합니다. 24시간제 형식의 15:00은 3:00 PM이 됩니다.
24시간제 형식은 유럽 대부분과 라틴아메리카, 아시아 전역에서 표준이며, 전 세계의 과학·군사·의료 분야에서도 사용됩니다. 12시간제 형식은 미국, 캐나다 및 일부 영어권 국가에서 일상적인 용도로 여전히 널리 쓰입니다.
지원되는 날짜 범위
이 변환기는 -62135596800부터 253402300799까지의 타임스탬프를 허용합니다. 이는 소급 그레고리력(현대 달력이 도입된 1582년 이전까지 거꾸로 적용한 달력)에서 1년 1월 1일부터 9999년 12월 31일까지의 모든 날짜를 포함합니다. 이 범위를 벗어난 타임스탬프는 범위 오류로 거부됩니다.
2038년 문제
많은 구형 컴퓨터 시스템은 유닉스 타임스탬프를 32비트 부호 있는 정수로 저장하며, 이 정수는 최대 2,147,483,647까지만 셀 수 있습니다. 에포크 이후 이만큼의 초가 지나면 2038년 1월 19일 03:14:07 UTC가 됩니다. 이 시점이 지나면 패치되지 않은 32비트 시스템은 음수로 되돌아가 날짜를 2038년이 아니라 1901년으로 읽습니다. 이를 2038년 문제라고 합니다. 모든 시스템에 영향을 주는 것은 아닙니다. 타임스탬프를 64비트 숫자로 저장하거나 JavaScript처럼 일반 숫자로 저장하는 최신 소프트웨어는 오버플로 없이 2038년보다 수천 년 뒤의 날짜도 나타낼 수 있습니다.
유닉스 타임스탬프의 일반적인 용도
유닉스 타임스탬프는 크기가 작고 비교나 정렬이 쉽기 때문에 컴퓨팅 전반에서 사용됩니다.
- 데이터베이스 행은 레코드가 생성되거나 마지막으로 변경된 시점을 기록할 때 타임스탬프를 사용합니다.
- 웹 서버는 캐싱과 만료를 제어하기 위해 HTTP 헤더와 쿠키에 타임스탬프를 사용합니다.
- 로그 파일은 각 이벤트에 타임스탬프를 기록하므로 항목을 순서대로 정렬할 수 있습니다.
- Git 및 기타 버전 관리 시스템은 이런 방식으로 커밋 시각을 기록합니다.
- 웹 API는 데이터가 생성되거나 마지막으로 업데이트된 시점을 표시할 때 타임스탬프를 사용합니다.
자주 묻는 질문
유닉스 에포크란? 유닉스 에포크는 1970년 1월 1일 UTC 자정입니다. 모든 유닉스 타임스탬프가 이 시점을 0으로 삼아 셉니다.
유닉스 에포크에는 윤초가 포함됩니까? 아니요. 유닉스 시간은 하루를 정확히 86,400초로 계산하고 UTC에 가끔 추가되는 윤초를 무시하므로, 천문 시간과 약간 어긋납니다.
유닉스 타임스탬프는 음수가 될 수 있습니까? 예. 음수 값은 1970년 1월 1일 이전의 날짜를 나타냅니다.
타임스탬프의 자릿수가 13자리가 아니라 10자리인 이유는 무엇입니까?
13자리 타임스탬프는 초가 아니라 밀리초 단위입니다. JavaScript의 Date.now()와 많은 웹 API는 타임스탬프를 밀리초 단위로 반환하므로, 웹 개발에서 13자리 값이 흔합니다.
유닉스 타임스탬프는 모든 시간대에서 같습니까? 숫자 자체는 특정 시간대에 연결되어 있지 않습니다. 항상 UTC의 에포크 이후 경과한 초를 셉니다. 이를 현지 날짜와 시각으로 변환하려면 해당 시간대의 오프셋을 더해야 하므로, 이 변환기의 결과는 실행되는 기기의 시간대를 따릅니다.
이 변환기가 처리할 수 있는 가장 늦은 날짜는 언제입니까? 9999년 12월 31일 23:59:59 UTC이며, 타임스탬프는 253402300799입니다. 가장 이른 날짜는 1년 1월 1일 00:00:00 UTC이며, 타임스탬프는 -62135596800입니다.