为什么使用有符号整数来表示时间戳?1970 年有一个明确定义的开始,表示为 0,那么为什么在此之前我们还需要数字呢?是否在任何地方使用负时间戳?
Kei*_*son 43
C 的早期版本没有无符号整数。(一些程序员在需要无符号算术时使用指针。)我不知道哪个先出现,time()
函数或无符号类型,但我怀疑表示是在无符号类型普遍可用之前建立的。而 2038 年的未来已经足够远,可能不值得担心。我怀疑很多人认为到那时 Unix 还会存在。
有符号的另一个优点time_t
是将其扩展到 64 位(这已经在某些系统上发生了)让您可以表示未来数千亿年的时间,而不会失去表示 1970 年之前时间的能力。(这就是为什么我反对切换到32 位无符号 time_t
;我们有足够的时间过渡到 64 位。)
amp*_*ine 15
它支持 1970 年 1 月 1 日之前的时间戳和日期。