에포크 시간을 읽기 쉬운 날짜로 변환하는 방법

인기 프로그래밍 언어에서 Unix 타임스탬프를 읽기 쉬운 날짜로 변환하는 실용적인 가이드. 온라인 도구와 시간대를 고려한 예제 포함.

에포크 시간이란?

에포크 시간(Unix 시간 또는 POSIX 시간이라고도 함)은 1970년 1월 1일 00:00:00 UTC 이후 경과한 초의 수입니다. 컴퓨팅에서 시점을 표현하는 보편적 표준입니다. 거의 모든 언어와 운영체제가 기본 지원하여, 시스템 간 타임스탬프 저장·교환에 가장 신뢰할 수 있는 형식입니다.

1단계 — 타임스탬프 형식 식별하기

변환하기 전에 타임스탬프가 초인지 밀리초인지 판단하세요:

  • 10자리(예: 1700000000) → Unix 에포크 이후의 초
  • 13자리(예: 1700000000000) → Unix 에포크 이후의 밀리초
  • 확실하지 않으면 1000으로 나눠 연도가 합리적인지 확인하세요
  • 위 변환기에 붙여넣으면 자동으로 감지하기도 합니다

JavaScript에서 epoch를 날짜로 변환

JavaScript의 Date 생성자는 밀리초를 받습니다. 타임스탬프가 초 단위라면 먼저 1000을 곱하세요.

  • new Date(1700000000 * 1000).toISOString() → '2023-11-15T06:13:20.000Z'
  • new Date(1700000000 * 1000).toUTCString() → 'Wed, 15 Nov 2023 06:13:20 GMT'
  • new Date(1700000000 * 1000).toLocaleString('en-US', { timeZone: 'America/New_York' })
  • new Date(1700000000000).getTime() → 1700000000000 (milliseconds back)

Python에서 epoch를 날짜로 변환

Python의 datetime 모듈은 로컬 시간용 fromtimestamp()와 UTC용 utcfromtimestamp()를 제공합니다. 명시적 시간대 처리에는 timezone.utc 매개변수를 사용하세요.

  • datetime.datetime.fromtimestamp(1700000000) → local timezone
  • datetime.datetime.fromtimestamp(1700000000, tz=datetime.timezone.utc) → UTC (Python 3.2+)
  • datetime.datetime.fromtimestamp(1700000000).strftime('%Y-%m-%d %H:%M:%S') → formatted string
  • datetime.datetime.fromtimestamp(1700000000, tz=datetime.timezone.utc).isoformat() → ISO 8601

PHP에서 epoch를 날짜로 변환

PHP의 date() 함수와 DateTime 클래스는 Unix 타임스탬프를 직접 지원합니다.

  • date('Y-m-d H:i:s', 1700000000) → '2023-11-15 06:13:20' (server's local timezone)
  • gmdate('Y-m-d H:i:s', 1700000000) → '2023-11-15 06:13:20' (always UTC)
  • $dt = new DateTime(); $dt->setTimestamp(1700000000); $dt->format('c') → ISO 8601

Go에서 epoch를 날짜로 변환

Go의 time 패키지는 time.Unix(seconds, nanoseconds)로 Unix 타임스탬프를 변환합니다.

  • time.Unix(1700000000, 0) → time.Time in local timezone
  • time.Unix(1700000000, 0).UTC() → force UTC
  • time.Unix(1700000000, 0).Format(time.RFC3339) → '2023-11-15T06:13:20Z'
  • time.Unix(1700000000, 0).Format('2006-01-02 15:04:05') → custom layout

에포크 시간 변환 시 흔한 실수

Unix 타임스탬프에서 가장 흔한 오류:

  • JavaScript에서 초에 1000 곱하기를 잊음 — new Date(1700000000)은 2023년이 아니라 1970년이 됨
  • JavaScript 밀리초를 서버 측 언어에서 그대로 초로 사용
  • 시간대를 지정하지 않고 환경마다 다른 서버 로컬 시간대에 의존
  • 타임스탬프를 정수가 아닌 문자열로 저장하여 숫자 비교와 연산이 깨짐

epoch에서 날짜로 FAQ

에포크 시간을 날짜로 어떻게 변환하나요?
값이 초(10자리)인지 밀리초(13자리)인지 식별한 뒤 언어의 날짜 API로 변환하세요 — JavaScript는 new Date(seconds * 1000), Python은 datetime.fromtimestamp(seconds, tz=timezone.utc), 또는 위 변환기에 붙여넣으세요.
왜 제 에포크 타임스탬프가 1970년으로 변환되나요?
밀리초를 기대하는 함수(대개 JavaScript의 new Date())에 초 값을 넘겼기 때문입니다. 10자리 초 값을 먼저 1000으로 곱하세요.
에포크 시간을 UTC로 변환할까요, 로컬 시간으로 변환할까요?
로그, API, 서버 간 비교에는 UTC를 쓰고, 표시할 때만 사용자의 로컬 시간대로 변환하세요. 에포크 값 자체는 시간대 중립적입니다.