年的标准——纪元 Era Epoch
在中国古代, 皇帝会订立年号来纪年, 比如贞观就是唐太宗订立的年号, 于是天下使用贞观元年,贞观二年的方式来纪年。皇帝可以因为各种原因更换年号,比如武则天在位21年, 使用了17个年号。很显然,我们要计算神龙元年距今有多少年了, 势必就非常吃力。但是,好在后来我们使用了公元纪年的方式。
公元, 即公历纪元, 是国际通行的纪年体系。
这个纪年体系以传说中耶稣基督额生年为公历元年, 相当于中国西汉平帝元年,在这之前是公元前,这之后是公元后,也就是公元。
公元后
- AD ,也写为 A.D. 公元, Anno Domini, 是anno Domini nostri Jesu Christi 的缩写, 意思是耶稣基督之年
- BC , 公元前, Before Christ, 意思是基督之前
时间的标准
关于时间的标准, 也有一些概念:
- IAT: International Atomic Time, 原子时, 是一种通过原子钟得到的时间标准。
原子钟是世界上已知最准确的时间测量和频率标准,原子钟在37年的误差不超过1秒。
可以理解为一种计时很准的仪器,类似钟表。 - UT: Universal Time, 世界时。基于地球自转的时间标准。世界时有多个标准, 彼此相差最多几秒。 最常用的有UTC 和UT1 。
- UTC, 世界标准时间。 以原子时秒长为基础
- GMT,格林威治时间, 以地球自转为基础
- CST , 北京时间 China Standard Time
UTC
法语的世界标准时间的词组是 Temps Universel Coordonne, 简写是 TUC;英语的词组是Universal Coordinated Time,简写是UCT。 两者互不相让,最后协调一下, 使用UTC。
UTC, 被称为时间标准时间, 从上面的英文/发文直接翻译,也被称为国际协调时间,
UTC以原子时秒长为基础,尽量接近时间时的一种时间计量系统。 被广泛应用在互联网和万维网的标准中。
GMT
GMT, 格林尼治平时, 又称格林尼治平均时间或格林尼治标准时间, 旧译为格林威治标准时间。
GMT, 格林尼(威)治标准时间, Greenwich Mean Time, 是位于伦敦郊区的格林尼治天文台的标准时间。
- 本初子午线被定义在通过那里的经线
- 格林尼治标准时间的正午是指当太阳横穿格林尼治子午线时的时间。
由于地球轨道额运动速度不均匀,地球每天的自转是不规则的,而且正在缓慢减速, 因此GMT时间不再作为标准时间, 而是使用原子钟报时的GMT。
UTC和GMT关系
- UTC最为科学和精确
- 不需要精确到秒的状况下, GMT 等同UTC 。
- CST 北京时间, 东八区 ,超前于标准时间8个小时。
GMT+08:00
时区的由来
Time Zone , 时区, 1884年在华盛顿召开的国际经度会议时,为克服全球时间上的混乱,将全球划分为24个时区。 中国采用首都北京所在地东八区的时间为全国统一时间, 也就是北京时间。
- 在那次会议,规定以英国伦敦格林威治为零度经线的起点。因为地球由西向东每24小时转一周360度,则每隔15度,相差一小时。
- 时区差, 东正西负, 北京时间东八区,+8
时区的划分如下图:
一些时区
- China Stanard Time , CST 中国标准时间 UTC+8 UT+8:00
- Central Standard Time(USA) UT-6:00 美国标准时间
- Central Standard Time(Australia) UT+9:30 澳大利亚标准时间
- Cuba Standard Time UT-4:00 古巴标准时间
时间戳是什么?
时间戳: UTC从1970年01月01日 0:00:00开始计算秒数, 这个秒数是时间戳。也就是从那个时间到指定时间总共过了多少秒。
1970年1月1日(00:00:00 GMT)至当前时间的总秒数, 也被称为Unix时间戳。
那时间戳为什么从1970年开始呢?
UNIX操作系统约定 1970年1月1日作为时间纪元, 也就是开始时间。
最初的操作系统是32位的, 用整型表示时间戳 , 2^31 -1 = 2147483647
1年的总秒数 = 3652460*60 = 31536000
两者相除的值是 68.1
32 位表示事件的最大间隔是68年, 考虑计算机产生的年代, 取1970年1月1日作为UNIX系统时间的纪元。Java也遵循了这一约定。
64位操作系统出现后, 就没有这个问题了。
时间的表示——ISO8601:2000
- 年4位数, 月2位数, 日2位数
- 年由4位数组成, 公元1年为 0001 ,现在是 2021,公元前一年是0000年
- 时间表示:小时、分和秒都是2位数。UTC最后加一个大写字母Z, 其他时区用时间+时差表示。
14:30:05Z
22:30:05+08:00
- 日期+时间的组合表示: 在时间前面加一个大写字母T。
2021-05-03T17:30:08+08:00