Unix 时间戳为什么是自 1970 年 1 月 1 日起的绝对时间
因为Unix就是那个时代产生的。
Unix是1969年发布的雏形,最早是基于硬件60Hz的时间计数。
1971年底出版的《Unix Programmer's Manual》里定义的Unix Time是以1971年1月1日00:00:00作为起始时间,每秒增长60。
之后考虑到32位整数的范围,如果每秒60个数字,则两年半就会循环一轮了。于是改成了以秒为计数单位。
这个循环周期有136年之长,就不在乎起始时间是1970还是1971年了,于是就改成了人工记忆、计算比较方便的1970年了。
Java:1392515067621这种从1970年开始的毫秒数的时间戳叫什么时间戳呢?
时间戳是自 1970 年 1 月 1 日(08:00:00 GMT)至当前时间的总秒数,它也被称为 Unix 时间戳。时间戳(timestamp),一个能表示一份数据在某个特定时间之前已经存在的、 完整的、 可验证的数据,通常是一个字符序列,唯一地标识某一刻的时间。使用数字签名技术产生的数据, 签名的对象包括了原始文件信息、 签名参数、 签名时间等信息。广泛的运用在知识产权保护、 合同签字、 金融帐务、 电子报价投标、 股票交易等方面。时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。通俗的讲, 时间戳是一份能够表示一份数据在一个特定时间点已经存在的完整的可验证的数据。 它的提出主要是为用户提供一份电子证据, 以证明用户的某些数据的产生时间。 在实际应用上, 它可以使用在包括电子商务、 金融活动的各个方面, 尤其可以用来支撑公开密钥基础设施的 “不可否认” 服务。《时间戳规范》的标准中规定了时间戳的保存、 时间戳的备份、 时间戳的检索、 时间戳的删除和销毁、 时间戳的查看和验证。时间戳的保存包括在TSA (时间戳机构)方的保存和在用户方的保存。 在TSA方的保存涉及到时间戳数据库的管理和时间戳记录应当包含的信息项, 一般最少应包括入库时间、 序列号、 完整编码等。 时间戳在用户方一般由用户自行保存。
为什么我空间所有说说的日期都变成1970.1.1了
1970年 是计算机一个时代的转变,同时也是以距历元(格林威治标准时间 1970 年 1 月 1 日) 为标准的 计算机 网络时间初始化也就是服务器或者系统 更新的时候 出现了的一小段插曲 BUG 造成的时间初始化 。这个东西来自Unix系统的时间戳(timestamp),这个时间戳是系统和程序用来计时的一个东西,Unix系统规定当前时间的timestamp等于1970年1月1日0点到当前时间之间的秒数,所以当timestamp=0的时候,时间就是1970年1月1日。然后呢,qq的安卓版用的就是unix系统,所以ios的看不到真是遗憾。。。