输入一个北京时间,得到对应的UTC时刻、时间戳与本地时间。
输入10位秒级或13位毫秒级时间戳,得到UTC与北京时间。
UTC,全称协调世界时,是全世界共同使用的时间基准。它由分布在全球各国的五百多台原子钟加权平均产生,再用闰秒机制与地球自转对齐,精度可达纳秒级。我们熟悉的"北京时间"并不是独立的时间体系,而是UTC加8小时得到的东八区区时;纽约时间、伦敦时间、东京时间,本质上都是UTC加上各自的偏移量。可以说,全球只有一份时间,只是各地给它穿了不同的时区外衣。
这套体系对普通人最大的价值是消除歧义。跨国视频会议、跨境机票、国际快递单上的时刻,如果只写数字不写时区,几乎必然出错;程序员世界里更甚:数据库存UTC、接口传ISO8601、日志带Z后缀,是跨团队协作的基本礼仪。北京与伦敦冬季相差8小时、夏季相差7小时(英国有夏令时),北京与纽约相差12到13小时,安排跨国事务时先统一到UTC再各自换算,是永远不会错的方法。
第一个坑:把北京时间当成UTC。典型的现象是日志时间"快了8小时"或"慢了8小时"——系统内部存的是UTC,展示层忘了加8,或者相反。排查方法很简单:拿本页的实时对照卡核对当前时刻,看差异是不是恰好8小时。第二个坑:日期跨越。北京时间晚上8点,UTC还是中午12点,同一天;但北京时间凌晨1点,UTC是前一天17:00,日期已经倒退一天。跨零点换算时务必连日期一起换,只换时刻不看日期是最高频的错误。
第三个坑:秒级与毫秒级时间戳混用。Unix时间戳通常是10位秒级,但Java、JavaScript的毫秒级是13位,两者相差1000倍,拿13位数当秒数去解析会得到五万年后的日期。本页对两种格式都能识别,粘进来即出结果。需要频繁处理时区的读者,还可以配合本站的时区换算查全球任意城市,或用时间戳转换做更细的批量化处理;开会前用会议时间规划核对各方当地的合理时段,可以省掉大量来回确认。