5个与UNIX时间戳相关的常见问题
#### 什么是UNIX时间戳?
每个做程序员的,不可能没有遇到过时间戳的问题。到底什么是UNIX时间戳?
Unix时间戳,英文称为Unix epoch,Unix time,POSIX time 或 Unix timestamp。具体指的是从1970年1月1日(UTC/GMT的午夜)开始,所经过的秒数。需要注意的是这里面并考虑闰秒。
闰秒:由于地球自转的不均匀性(由地球物质分布不均匀和其它星球的摄动力等引起的)和长期变慢性(主要由潮汐摩擦引起的),会使世界时(民用时)和原子时(一种较恒定的时制,由原子钟得出)之间相差超过到0.9秒时,就把世界时向前拨1秒(负闰秒,最后一分钟为59秒)或向后拨1秒(正闰秒,最后一分钟为61秒),闰秒一般加在公历年末或公历六月末。(摘自百度知道:)
#### UNIX时间戳的原点在哪里?
按照ISO 8601规范为,UNIX时间戳的0为1970-01-01T00:00:00Z.
#### UNIX时间戳的2038问题是什么?
由于在目前的大多数系统中,时间存储为32位,而32位最大表示的数字,换算成10进制为2147483647。我们可以将这个数字换算成时间,那就是:Tue Jan 19 2038 11:14:07 GMT+0800 (China Standard Time)。也就是说,这样的系统下无法表达大于这个时间点的时间。
这个问题就是2038年问题,又称为Y2038。
#### UNIX时间戳的常见数值?
1 分钟 = 60秒
1 小时 = 3600秒
1 天 = 86400秒
1 周 = 604800秒
1 月 (30.44 天) = 2629743秒
1年 (365.24 天) = 31556926秒
#### 在编程用,时间戳有什么用?
时间与日期在我们熟悉的web上应用的相当广泛,比如计算用户的在线时间,会员的续费时间,表时年份,月份,星期等,都可以用统一格式来存取,里面放置的就是时间戳。
UNIX时间戳 2038问题 Y2038
更新于 2023年03月28日 20:53:54