Mac Absolute Time

Mac Absolute Time to Unix Timestamp Converter

Convert Apple’s Mac Absolute Time (CFAbsoluteTime) — seconds since January 1, 2001 UTC — to a Unix timestamp, ISO 8601, and a readable date in any timezone.

seconds since 2001-01-01 UTC

Current time — Mac Absolute Time (CFAbsoluteTime)
Unix timestamp (s)

What is Mac Absolute Time?

Apple’s Core Foundation measures time as CFAbsoluteTime: a double-precision count of seconds since the reference date of January 1, 2001 00:00:00 UTC. This “Mac absolute time” appears throughout macOS and iOS, including in plist files, the unified logging system, and many Cocoa APIs.

  • Epoch: 2001-01-01 00:00:00 UTC (the Cocoa/Core Foundation reference date)
  • Type: floating-point seconds, so fractional values carry sub-second precision
  • A present-day value is around 7.4 × 10^8 (smaller than the equivalent Unix timestamp)
  • Seen in: CFAbsoluteTimeGetCurrent(), NSDate timeIntervalSinceReferenceDate, plist Date values

How to convert Mac Absolute Time to Unix time

There are 978,307,200 seconds between the Unix epoch (1970) and the Apple epoch (2001). Add that offset to convert Apple seconds into Unix seconds.

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

Related Apple formats

Core Data persists dates as the same CFAbsoluteTime value, so the Core Data timestamp converter uses identical math. Be careful with values that look like Unix timestamps — a 2001-based value will appear ~31 years too early if you forget the offset.

  • Core Data SQLite stores ZDATE columns as seconds since 2001
  • A bare value near 7×10^8 is almost certainly Apple time, not Unix time
  • Some APNs and log values use the same reference date

Related timestamp format converters

Other Apple-platform time types

CFAbsoluteTime is the canonical Apple reference, but related types show up across Apple frameworks:

  • NSDate has the same underlying timeIntervalSinceReferenceDate (seconds since 2001)
  • NSTimeInterval is the typedef for a double-precision seconds value (not always Apple-epoch — context-dependent)
  • plist <date> elements are written as ISO 8601 strings, not raw CFAbsoluteTime — convert before persisting
  • iOS Unified Logging timestamps and Core Telephony events generally use CFAbsoluteTime
  • macOS log show output prints local times by default; raw event timestamps remain UTC

FAQ

What is the CFAbsoluteTime epoch?
CFAbsoluteTime counts seconds since January 1, 2001 00:00:00 UTC, the Core Foundation/Cocoa reference date.
How do I convert Mac absolute time to Unix time?
Add 978,307,200 seconds to the Mac absolute time to get a Unix timestamp in seconds.
Is Mac absolute time the same as Core Data timestamps?
Yes. Core Data stores dates as CFAbsoluteTime (seconds since 2001), so the conversion is identical.