Jon Skeet的回答是正确的。我会补充一些想法。
Unix 时间对不同的人意味着不同的东西。正如维基百科文章所描述的那样,基本思想通常是自纪元以来的秒数,纪元是 1970 年UTC时区的第一刻。顾名思义,这种时间跟踪方法被用于类 Unix 操作系统中。
地方性
是否因地区而异?不,根据定义,它代表 UTC 时区。所以 Unix 时间中的时刻意味着奥克兰、巴黎和蒙特利尔的同一时刻。UT
in 的意思UTC
是“世界时”。
Unix 时间在无处不在的意义上是通用的吗?不,当然不是。
粒度
首先,粒度。随着计算机时钟芯片变得更加精确,传统的计算机系统开始以毫秒、微秒甚至纳秒为单位跟踪时间。不同的软件采用不同的时间跟踪粒度。java.util.Date/.Calendar 类和Joda-Time库都使用毫秒分辨率,而Java 8 中内置的较新java.time 包采用纳秒分辨率。某些数据库(例如Postgres )通常采用微秒级分辨率。

引用问题……</p>
我以毫秒为单位获取 UNIX 时间
在技术上是矛盾的,因为传统的 Unix 时间或 POSIX 时间是按整秒而不是毫秒来跟踪的。
时代
其次,时代。1970 年的第一刻远非各种计算机系统使用的唯一时期。已经使用了几十个 epoch,其中一些使用非常广泛。例如,Microsoft Excel 和 Lotus 1-2-3 电子表格、Cocoa、GPS卫星、Galileo卫星、DOS 和 FAT 文件系统以及 ntp(网络时间协议),每个都使用从 1899 年到 2001 年的不同时期。
避免 Count-From-Epoch
通常最好通过从纪元开始计算毫秒(或任何粒度)来避免专注于处理日期时间值。这样的值很难被人类阅读和理解,从而使调试变得困难并且错误不明显。加上上面讨论的关于粒度和/或时期的假设可能出现的错误。
而是使用一个体面的日期时间库。在 Java 中,这意味着:
您是否通过收集 7 位或 8 位组来跟踪文本?不,您使用类和库来完成处理字符集、字符编码等的繁重工作。对日期时间工作执行相同的操作。