Mac Absolute Time

Mac Absolute Time → Unix 타임스탬프 변환기

Mac Absolute Time을(를) Unix 시간으로 변환합니다. 정확한 공식과 큰 값 지원. 출력: 초, 밀리초, ISO 8601, 가독 형식.

2001-01-01 UTC 이후의 초

현재 시간 — Mac 절대 시간 (CFAbsoluteTime)
Unix 타임스탬프(초)

Mac Absolute Time이란?

Apple의 Core Foundation은 시간을 CFAbsoluteTime으로 측정합니다. 이는 기준일인 2001년 1월 1일 00:00:00 UTC 이후 초의 배정밀도 카운트입니다. 이 'Mac absolute time'은 macOS와 iOS 전반, 즉 plist 파일, 통합 로깅 시스템, 많은 Cocoa API에 나타납니다.

  • epoch: 2001-01-01 00:00:00 UTC(Cocoa/Core Foundation 기준일)
  • 유형: 부동소수점 초이므로 소수부가 초 미만 정밀도를 가짐
  • 현재 값은 약 7.4 × 10^8(동등한 Unix 타임스탬프보다 작음)
  • 나타나는 곳: CFAbsoluteTimeGetCurrent(), NSDate timeIntervalSinceReferenceDate, plist의 Date 값

Mac Absolute Time을 Unix 시간으로 변환하는 법

Unix epoch(1970)와 Apple epoch(2001) 사이에는 978,307,200초가 있습니다. 이 오프셋을 더해 Apple 초를 Unix 초로 변환합니다.

  • Unix seconds = MacAbsoluteTime + 978307200
  • 예: 721692800 → 1700000000 → 2023-11-14 22:13:20 UTC
  • 역방향: MacAbsoluteTime = Unix seconds − 978307200
  • Swift: Date(timeIntervalSinceReferenceDate: t).timeIntervalSince1970

관련 Apple 형식

Core Data는 날짜를 같은 CFAbsoluteTime 값으로 저장하므로, Core Data 타임스탬프 변환기는 동일한 계산을 사용합니다. Unix 타임스탬프처럼 보이는 값에 주의하세요 — 2001 기준 값은 오프셋을 잊으면 약 31년 더 이르게 나타납니다.

  • Core Data SQLite는 ZDATE 열을 2001년 이후의 초로 저장
  • 7×10^8 부근의 단독 값은 거의 확실히 Unix 시간이 아니라 Apple 시간
  • 일부 APNs와 로그 값도 같은 기준일을 사용

관련 타임스탬프 형식 변환기

기타 Apple 플랫폼 시간 유형

CFAbsoluteTime은 Apple의 표준 기준이지만, 관련 유형이 Apple 프레임워크 전반에 나타납니다:

  • NSDate는 같은 기반의 timeIntervalSinceReferenceDate를 가짐(2001년 이후의 초)
  • NSTimeInterval은 배정밀도 초 값의 typedef(항상 Apple epoch는 아님 — 문맥에 따라 다름)
  • plist의 <date> 요소는 원시 CFAbsoluteTime이 아니라 ISO 8601 문자열로 기록됨 — 저장 전에 변환
  • iOS 통합 로깅 타임스탬프와 Core Telephony 이벤트는 일반적으로 CFAbsoluteTime을 사용
  • macOS의 log show 출력은 기본적으로 현지 시각을 표시함; 원시 이벤트 타임스탬프는 UTC로 유지됨

FAQ

CFAbsoluteTime epoch란?
CFAbsoluteTime은 2001년 1월 1일 00:00:00 UTC 이후의 초를 셉니다. 이는 Core Foundation/Cocoa 기준일입니다.
Mac 절대 시간을 Unix 시간으로 변환하려면?
Mac 절대 시간에 978,307,200초를 더해 초 단위 Unix 타임스탬프를 얻으세요.
Mac 절대 시간은 Core Data 타임스탬프와 같나?
네. Core Data는 날짜를 CFAbsoluteTime(2001년 이후의 초)으로 저장하므로 변환이 동일합니다.