UNIX时间是什么

发布时间:阅读数:10


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

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

UNIX时间是什么

简介

UNIX 时间,或称POSIX 时间是 UNIX 或类 UNIX 系统使用的时间表示方式:从协调世界时 1970 年 1 月 1 日 0 时 0 分 0 秒起至现在的总秒数,不考虑闰秒。 在多数 Unix 系统上 Unix 时间可以透过 date +%s 指令来检查。

示例

示例:1533560248(ISO 8601:2018-08-06T12:57:28Z),当这个页面生成时的 Unix 时间。

问题

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 秒(二进制:01111111 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 秒。