计算机中的时间
unix时间戳
unix时间戳是相对于UTC时间"1970年1月1日 00:00:00"所经过的秒数。由于是相对于UTC时间,各时区的计算机在同一时刻获取到的时间戳都是相同的。
unix时间戳不存在时区问题,因此在传递时间参数的时候,传时间戳明显比传格式化的时间字符串更方便,更明确
2038年问题
相当一部分unix操作系统使用32位有符号整型保存时间戳,因此时间戳的值最大也只有2147483647,换算成UTC时间为"2038-01-19 03:14:07",一旦超过这个时间,这些系统的时间戳就会变成一个无效值,可能会导致程序出错,这就是2038年问题。
这有点类似于千年虫问题,2000年以前,很多计算机程序由于程序设计有问题,在时间超过2000年1月1日零点之后,程序会因为无法正确处理时间导致处理出错或程序崩溃(例如有些程序只用年份的后两位表示年份,导致2000年会被误认为是1900年)