【技术累积】【点】【java】【6】时间戳
闲聊
加班多诶,写博客诶。
基本
时间戳,直观理解就是时间上面盖个戳罢了,在时间这个轴上面记录个点;
unix时间戳表示从开始的时间点开始,经过了多少秒;
可以简单的看做是一个计时器;
基本定义可以直接看百度百科:unix时间戳
当然,上面这个是用在程序中的时间戳,广义的时间戳可用于一些需要法律效力介入的场景,做统一,做记录啥的。
分析
一些琐碎的点还是需要看下的:
- 时间戳的范围是1970-2037年,精度精确到秒;
- 1970,是UNIX出现的时间(制定规则的就是牛逼)
- 2037,是机制决定的——在计算机内核中,一次计算32位,2的32次是4 294 967 296,到2037年底耗完,目前没有解决方法;
使用
那么时间戳在程序中都是咋用的咧:
- 因为是整数型的,比date类型要省空间,传输也更快(其实现在的情况下,一般可以不考虑了)
- 转换成各种类型的date格式;
- 数据库中自动更新的TIMESTAMP类型,参考:Mysql中的DATE和DATETIME有什么区别?,mysql 关于日期时间的字段类型;目前遇到的,一个表中,created_date是用的DATETIME类型,而modified_date用的是TIMESTAMP类型;
特殊情况
java的默认精度是毫秒级,而时间戳精确到秒级;
时间戳,2的32次方,十进制是10位数;
所以java中的时间戳是13位数;
所以互转的或,基本就是乘以或者除以1000的关系;
参考:不同编程语言中的时间戳