1时间单位 “秒” 在历史上有过三种定义,16 世纪末开始出现以秒为最小单位的钟表.当时秒的定义是将一个太阳日划分为 $24\times60\times60 = 86400$ 等分,并定义每等分一秒.而一个太阳日(solar day)可以定义为地球上某处观察到太阳从一天的最高点到第二天最高点的时间间隔.
第一个定义的问题在于潮汐力的作用下,地球的自转速度并不恒定,1940 年左右石英钟的精确度已经超过了地球自转所定义的秒.科学家发现用地球的回归年定义秒更精确,于是从 1956 年,科学家使用回归年来定义秒(定义略).
从 1967,国际单位制将秒重新定义为:一秒等于铯(Cs)原子 133 基态的超精细能级之间的跃迁辐射的电磁波周期的 $9,192,631,770$ 倍.该定义一直沿用至今.本书中如无特别说明,“秒” 一律指国际单位的定义.
当前世界上最广泛的一套时间标准叫做协调世界时(Coordinated Universal Time),注意作为英语和法语的一种妥协,它的缩写是 UTC 而不是 CUT(类似于国际标准单位是 SI 而不是 IS).UTC 规定了日历,世界时区的划分,以及闰年,闰秒(见下文)等规则.
UTC 中的时区是不随季节改变的(见 “夏令时”),所有的时区都以格林尼治时间(Greenwich mean time,或 GMT) 为参考,格林尼治天文台位于英国,它所在的时区 GMT+0 都使用格林尼治天文台的当地时间.从该时区开始,向东的时区依次为 GMT+1,GMT+2,……,GMT+12;向西的时区依次为 GMT-1,GMT-2,……,GMT-12.中国通用的北京时间处于 GMT+8.虽然 UTC 是一个标准,但是大家往往把 UTC 和 GMT 当作同义词使用,例如北京时间也可以记为 UTC+8.
回归年(tropical year)也叫太阳年(solar year),是在地球上观察到太阳直射点经度变化一个周期的时间.回归年可以近似认为是地球绕太阳一周的时间.
一个回归年约为 365 天 5 小时 48 分 45 秒,比 365 天多出约 0.2422 天,约每四年多出一天,于是 UTC 规定闰年(leap year)为:年数不为 100 的倍数且能被 4 整除的年,以及年数能被 400 整除的年.如果一年不是闰年,就是平年,闰年平年比额外增加一个闰日(leap day)即 2 月 29 日.闰年有一个记忆口诀:四年一润,百年不润,四百年再润.
夏令时也称为日光节约时间(daylight saving time)夏时制(summer time).在一些维度较高的国家和地区由于夏天太阳升起更早,当地政府出于节能等考虑会在协调世界时的基础上把时间调快一个小时,即时区 +1.例如fig. 1 中美国2纽约的时区是 GMT-5,但夏天则会变为 GMT-4.
由于地球日在潮汐力的作用下逐渐变长,目前一个地球约为 86400.002 秒(国际单位的定义),而我们使用的钟表只有 86400 秒.UTC 规定钟表的一秒需要符合国际单位,所以规定在每个月的最后如果它和 UT1 时间(暂不介绍)之差超过 0.6 秒,就插入一个闰秒.到目前为止,所有的闰秒都只在 6 月 30 日和 12 月 31 日最后插入过,例如截止到 2020 年底,最近的 3 次闰秒分别在 2016/12,2015/6,2012/6 的最后插入过.当闰秒发生时,理论上人们需要把钟表暂停一秒(智能手机等设备会自动调整).
在计算机编程中,为了方便计算时间差会使用 Unix 时间(或时间戳,time stemp),也称为 Epoch 时间或者 POSIX 时间.Unix 时间是一个数(可以为负),定义为从 1970-1-1 的 0 时到某一时刻的秒数(国际单位的定义)减去这段时间内所有插入的闰秒.所以每当闰秒被插入时,Unix 时间同样需要暂停一秒.所以如果给 Unix 时间加上小数点后面的部分,除了闰秒外的任意时刻都可以用其 Unix 时间戳唯一表示.闰秒使得 Unix 时间变得不完美,所以在一些编程语言或程序库中,也定义了包含闰秒的 Unix 时间.
1. ^ 参考 Wikipedia 页面:Second,Leap Second,Coordinated Universal Time,Time Zone,Solar time,Julian Day.
2. ^ 美国除了亚利桑那和夏威夷州都采用夏令时.