·2분 읽기
타임스탬프 밀리초·나노초 변환법 — 로그 분석 실전 활용 가이드
밀리초·마이크로초·나노초 단위 타임스탬프를 변환하고 해석하는 법을 정리했어요. Java·JavaScript·Python 코드 예시와 로그 분석 실전 활용 팁까지 담았어요.

🕐
타임스탬프 변환기 바로 사용하기
Unix 타임스탬프와 날짜를 변환하세요
→
초 단위로 충분하지 않을 때
대부분의 로그는 초 단위 Unix timestamp(1713682800)를 써요. 근데 고성능 서비스 로그나 트레이싱 데이터는 **밀리초·마이크로초·나노초** 단위가 필요해요. 분산 시스템 디버깅, 성능 프로파일링, 초당 수천 요청 로그 정렬에 그 정도 정밀도가 꼭 필요하거든요.
이 글에선 세 단위의 차이와 변환, 실전 활용을 정리해요.
1. 단위 차이 한눈에
- **초 (s)**: 1970-01-01 00:00:00 UTC부터 초
- **밀리초 (ms)**: 초 × 1,000 (JavaScript Date.now()가 반환)
- **마이크로초 (μs)**: 초 × 1,000,000 (Python time.time_ns() // 1000)
- **나노초 (ns)**: 초 × 1,000,000,000 (Go time.Now().UnixNano(), Kafka record timestamp)
2026-04-21 10:00:00 UTC 기준:
- 초: 1745229600
- 밀리초: 1745229600000
- 나노초: 1745229600000000000
2. 언어별 현재 시각 얻기
```javascript
// JavaScript (브라우저·Node.js)
Date.now(); // 1745229600000 (ms)
performance.now(); // 고해상도 ms (fractional)
process.hrtime.bigint(); // Node.js: ns (BigInt)
```
```python
# Python 3.7+
import time
time.time() # 1745229600.123 (s, float)
time.time_ns() # 1745229600123456789 (ns)
```
```java
// Java 8+
System.currentTimeMillis() // 1745229600000 (ms)
System.nanoTime() // 임의 기준점 기준 ns (순수 경과 측정용)
Instant.now().getEpochSecond() // 1745229600 (s)
```
3. 단위 간 변환
```javascript
// JavaScript
const sec = 1745229600;
const ms = sec * 1000;
const us = sec * 1_000_000;
const ns = sec * 1_000_000_000; // Number 정밀도 한계로 BigInt 권장
const nsBigInt = BigInt(sec) * 1_000_000_000n;
```
**Number 타입은 2^53 이상에서 정밀도 손실**이에요. 나노초 다룰 땐 반드시 BigInt 쓰세요.
4. 로그 분석 실전 팁
로그 파일에서 타임스탬프 단위를 모를 때 자릿수로 판별해요.
- **10자리** → 초 (예: 1745229600)
- **13자리** → 밀리초 (예: 1745229600123)
- **16자리** → 마이크로초
- **19자리** → 나노초
`awk`나 `jq`로 단위 변환하면 Kafka 로그 + Nginx 로그 같은 **서로 다른 단위 로그를 합쳐 정렬**할 수 있어요.
5. Toolkio Timestamp Converter로 빠른 변환
로그 한 줄 복사해서 Toolkio에 붙여넣으면 밀리초/나노초 여부를 자동 감지해서 읽기 쉬운 날짜로 변환해줘요. 디버깅 중 '이 로그 언제 찍혔지?' 빠르게 확인할 때 유용해요.