UNIX时间
UNIX或类UNIX系统使用的时间表示方式
UNIX时间,或称POSIX时间是UNIX类UNIX系统使用的时间表示方式。
简介
UNIX时间,从协调世界时1970年1月1日0时0分0秒起至现在的总秒数,不考虑闰秒。 在多数Unix系统上Unix时间可以透过date +%s指令来检查。
示例
示例:1533560248(ISO 8601:2018-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秒(二进制: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秒。
Unix负时间
在2016年2月12日,据披露,如果把苹果iPhoneiPad等设备的系统时间设置为1970年1月1日,随后重启设备,它会直接变砖。目前苹果公司正式承认了漏洞存在,但是尚未公布具体的引发原因。部分中国大陆用户猜想这是因为调整当地时间到1970.1.1 0:00后,如果时区为正,那么GMT时间就早于unix定义的0时间。例如北京时间 1970.1.1 0:00 (UTC+0800) 是UTC 1969.12.31 16:00 对应的unix时间是负的。但是有人回应尝试设为正时区重启后仍然变砖。苹果对此采用的策略是在随后的固件更新中将时间禁止调整到2000年以前。
纪念日
UNIX时间以5000日为纪念日,第一个5000日是1983年9月10日,第10000日是1997年5月19日,第15000日是2011年1月26日,第20000日是2024年10月4日,第五百个5000日是8814年10月8日。
相关条目
参考资料
最新修订时间:2024-11-08 10:43
目录
概述
简介
示例
问题
参考资料