时间戳的长度选32位,或是64位,都有限制。所以,设计了变长的时间戳。
第2版,表达范围从5880万亿年,到普朗克时间,这也太夸张了。于是有了第3版。
从第2版的8类时间戳,缩小为3类。其中,A类时间戳以天为单位,分配146097000个数字给它,能表达40万年。设计为公元前后各20万年。
B类时间戳以毫秒为单位,分配86400000个数字给它,能表达1天。
C类时间戳以皮秒为单位,即10-12秒。
剩下的数字待定。它们加起来正好是231,能用31比特表示。凑够32比特,还有1比特用来表示“是否连续”。
1×××× 1×××× 0××××
这一位为1,表示继续;为0,表示编码终止。
总结:
变长时间戳第3版,较第2版而言,减小了表达范围,更贴近实际使用情况。增加了“连续位”,方便编码实现。
当只使用A类时间戳时,它以天为单位,也就是日期类型date。所以,不必专门设计date类型,用变长时间戳就能解决。
常用的格式为A+B,占64位,精确到毫秒。
更精确的时间,用A+B+C,占96位。