▷ 时间戳转换器

2038年问题
Unix时间最早的版本是60 Hz的32位整数。1971年11月3日发布的第一版Unix程序员手册将Unix时间定义为“自1971年1月1日00:00:00以来的时间,以秒为单位”,即从00:00:00,1971年1月1日开始,以60 Hz递增。这意味着将Unix时间存储为32位无符号整数将在829天后用尽重置(约为2.5年)。由于这个限制,Unix时间原点被重新定义了几次,直到它开始使用1970年1月1日UTC 0:0:0的时间原点,定时为1Hz。由于Unix和C使用32位带符号整数来表示时间,因此这个时间跨度约为136年,在1970年之前和之后分别分为50/50。也就是说,直到2038年1月19日重置用尽。今天大多数使用UNIX的系统都是32位的,也就是说,它们将时间类型time_t表示为32位带符号整数。因此,它可以表示136年内的秒数。表示UTC 1901年12月13日20:45:52到UTC 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.2777702659万亿的12月4日15:30:08。