서버 로그에 1709251200이라는 숫자가 찍혀 있다. 에러가 언제 발생했는지 알려면 이 숫자를 날짜로 바꿔야 한다. 이게 Unix 타임스탬프다.
Unix 타임스탬프란
1970년 1월 1일 00:00:00(UTC)부터 경과한 초 수를 숫자 하나로 표현한 것이다. 전 세계 어디서든 동일한 시점을 하나의 정수로 나타낼 수 있어서 시간대 혼동이 없다.
0= 1970-01-01 00:00:00 UTC1709251200= 2024-03-01 00:00:00 UTC1767225600= 2026-01-01 00:00:00 UTC
초 단위와 밀리초 단위
| 단위 | 자릿수 | 사용처 |
|---|---|---|
| 초 (seconds) | 10자리 | PHP, Python, MySQL UNIX_TIMESTAMP() |
| 밀리초 (milliseconds) | 13자리 | JavaScript Date.now(), Java System.currentTimeMillis() |
10자리면 초 단위, 13자리면 밀리초 단위다. 변환할 때 단위를 잘못 넣으면 1970년대 날짜가 나오니 자릿수부터 확인하자.
개발에서 자주 쓰는 경우
API 응답 시간 확인
서버 로그나 API 응답에 created_at: 1709251200처럼 들어오면, 사람이 읽을 수 있는 날짜로 바꿔야 언제 생성된 데이터인지 파악할 수 있다.
토큰 만료 시간 확인
JWT의 exp 필드에 타임스탬프가 들어간다. 이 값을 날짜로 변환하면 토큰이 언제 만료되는지 확인할 수 있다.
날짜를 타임스탬프로 변환
특정 날짜부터 데이터를 조회하는 API를 호출할 때, 날짜 문자열 대신 타임스탬프를 파라미터로 넣어야 하는 경우가 있다.
TIP 로그를 뒤지다 보면 타임스탬프를 반복적으로 변환해야 할 때가 있다. 타임스탬프 변환기에서 현재 시각의 타임스탬프도 실시간으로 보여주고, 초/밀리초 양방향 변환과 UTC/로컬 시간 전환도 한 화면에서 된다.
타임스탬프는 컴퓨터에게 편한 시간 표현이다. 사람이 읽어야 할 때만 변환하면 되고, 그 변환은 숫자 하나 붙여넣기만 하면 끝이다.