Unix 타임스탬프 코드 스니펫
9개 프로그래밍 언어와 데이터베이스에서 Unix 타임스탬프를 다루기 위한 즉시 사용 가능한 코드. 현재 타임스탬프 가져오기, 날짜로 변환, 출력 포맷을 다룹니다.
이 코드 예제에 대하여
모든 예제는 초 단위 Unix 타임스탬프 샘플로 1700000000을 사용하며, 이는 2023년 11월 15일 06:13:20 UTC에 해당합니다. 자신의 타임스탬프로 바꾸세요. 밀리초를 보여 주는 예제는 1700000000000(같은 순간 × 1000)을 사용합니다.
언어별 초 vs 밀리초
가장 흔한 실수는 초와 밀리초를 혼동하는 것입니다. 이 빠른 참조를 사용하세요:
- 밀리초(× 1000): JavaScript Date.now(), Java System.currentTimeMillis(), C# DateTimeOffset.UtcNow.ToUnixTimeMilliseconds()
- 초(JS와 비교하려면 ÷ 1000): Python time.time(), PHP time(), Go time.Now().Unix(), Ruby Time.now.to_i, Rust SystemTime::now().as_secs()
- SQL: MySQL UNIX_TIMESTAMP() → 초; PostgreSQL EXTRACT(EPOCH) → 소수부가 있는 초
이 스니펫을 안전하게 사용하는 법
각 스니펫은 콘솔, 마이그레이션 스크립트, 테스트, API 핸들러에 붙여넣기 쉽도록 일부러 짧게 만들었습니다. 프로덕션에서 값을 쓰기 전에, 타임스탬프가 코드를 떠나는 경계에서 기대되는 단위를 확인하세요. 한 서비스가 밀리초를 보내고 다른 서비스가 변환 없이 초로 저장하면 많은 버그가 생깁니다.
- 브라우저·프런트엔드 코드에서는 API 문서에 다른 언급이 없으면 밀리초를 기대하세요
- 백엔드 코드, 로그, 셸 도구에서는 보통 Unix 초가 기본입니다
- 데이터베이스 필터에서는 모든 행과 인덱스에서 단위를 일관되게 유지하세요
- 포맷 출력에는 서버 기본값 대신 UTC나 명시적 IANA 시간대를 선호하세요
신뢰의 원천 선택하기
여러 서비스가 같은 이벤트 시각을 다룰 때는 하나의 표현을 신뢰의 원천(source of truth)으로 정하고 경계에서 변환하세요. 예를 들어 백엔드는 Unix 초를 저장하고, 프런트엔드는 Date용으로 1000을 곱하고, 보고서는 같은 순간을 UTC나 비즈니스 시간대로 포맷합니다.