如何使用终端 shell 命令获取苹果的 CF 绝对时间或核心数据支持的时间戳?

How to get apple's CF Absolute Time OR core data supported timestamp using terminal shell command?

date +"%s" - 此命令给出的输出如下:1623847472

我希望输出如下:645540272 使用 shell 命令

我已经尝试了 date 命令的大部分选项,但还没有成功。

date 命令没有这个选项,因为它最初不是 macOS 命令行工具,并且使用了不同的参考日期。它也不支持使用备用参考日期。您需要调整该值以弥补差异。

date 命令使用 1970 年 1 月 1 日 UTC 的 Unix 时间参考。 Core Data 和大多数其他 macOS 和 iOS 框架使用 Mac 参考日期 2001 年 1 月 1 日 UTC。这些参考日期之间的差异是 978307200 秒。

如果您使用 bash,您可以使用

获取自 macOS 参考日期以来的秒数
echo $((`date +"%s"` - 978307200))

它采用 %s 打印的 Unix 参考日期,并减去两个参考日期之间的差异以获得自 macOS 参考日期以来的时间。