unix时间和utc时间区别(unix系统时间为什么不正确)

UNIX 时间,或称 POSIX 时间 UNIX 或类 UNIX 系统使用的时间表示方法。

unix时间和utc时间区别(unix系统时间为什么不正确)

介绍

UNIX 时间,或POSIX 时间 UNIX 或类 UNIX 系统使用的时间表示方法:协调世界时间 1970 年 1 月 1 日 0 时 0 分 0 从秒开始到现在的总秒,不管闰秒如何。 在多数 Unix 系统上 Unix 时间能通过 date %s 命令来检查。

实例

实例:1533560248(ISO 8601:2022-08-06T12:57:28Z),当该页面生成时, Unix 时间。

难题

2038 年难题

2038 年 1 月 19 日 3 时 14 分 07 秒,32 位系统的 UNIX 时间将被重新设定。

目前大部分应用 UNIX 的软件都是 32 位置的,也就是他们可以 32 标记整数表示时间类型 time_t。所以它可以表明 136 年秒数。表明协调世界时间 1901 年 12 月 13 星期五 20 时 45 分 52 秒至 2038 年 1 月 19 日 3 时 14 分 07 二进制:0111111111111 11111111 11111111 11111111,0x7FFF:FFFF),下一秒二进制数字会是 10000000 00000000 00000000 00000000(0x8000:0000),这是负值,所以每个系统都会误解时间 1901 年 12 月 13 日 20 时 45 分 52 秒(也有可能回归 1970 年)。此时,软件可能会出现问题,导致系统瘫痪。

目前的解决方案是将系统从系统中解决 32 位转为 64 位系统。在 64 在位系统下,此时间最多可以显示 292,277,026,596 年 12 月 4 日 15 时 30 分 08 秒。

- END -