1970-01-01 05:30:00对应Python time.time()=0有什么特殊含义?
问题相关原理说明
你观察到的输出本质上和Unix纪元计时规则直接相关,具体说明如下:
- Unix时间戳的基准起点:整个编程领域通用的Unix时间(也叫POSIX时间)的计数原点是UTC时区的1970年1月1日00:00:00,对应的时间戳数值就是0,包括Python在内的绝大多数主流编程语言都统一遵循这个计时标准。
- 你运行代码得到的
1970-01-01 05:30:00是时区转换后的结果:datetime.datetime.fromtimestamp()方法默认会将时间戳转换为你运行设备的本地时区时间,该输出说明你当前系统的时区为UTC+5:30(比如印度标准时区)。如果你想要得到UTC时区的标准纪元起点,可使用datetime.datetime.fromtimestamp(0, datetime.timezone.utc),输出就会是1970-01-01 00:00:00。 - 这个计时标准在Python开发中应用非常广泛:Python标准库中的
time、datetime等时间处理模块都完全兼容Unix纪元规则,日常开发中常用时间戳做跨系统时间统一传递、时间差计算、日志时间标记等场景,数值型的时间戳存储、传输、对比都非常便捷。
内容的提问来源于stack exchange,提问作者Coder Alpha
相关产品推荐
相关产品推荐

