java的时间戳的长度为什么是固定的?它是如何做到的
我们经常会使用java的当前时间的毫秒数来生产一个唯一性代码,它很好用,因为它是13位,长度很短,可以作为系统唯一的订单号、产品唯一编码等,但是我一直不明白它的长度为什么一直是13位,而且是固定的。
我们都知道,使用System.currentTimeMillis()获取的当前时间的毫秒数,是表示从1970年1月1号0点0分0秒以来的毫秒数,这个毫秒数是Long类型的,随着时间的推移,这个毫秒数不应该会一直增长吗?但是为什么它能保持13的固定长度呢,如果按年月日时分秒毫秒来拼接也是17位呀。System.currentTimeMillis()得到的是毫秒数,而不是年月日时分秒的拼接,随着时间的推移,100年、1万年,13位怎么就够呢?
真的不明白System.currentTimeMillis()获取的毫秒数是如何计算的,我甚至怀疑它以后长度会超过13位的一天!