Windows系统中Python运行time.gmtime(0)返回1970年的原因是什么
Windows平台Python
time.gmtime(0)返回1970年的原因 - Python标准库的
time模块遵循POSIX时间规范,该规范统一将时间纪元定义为1970年1月1日00:00:00 UTC,和底层操作系统的原生纪元设计无关。 - Windows系统原生的1601年1月1日纪元,仅用于系统底层API的时间计算逻辑(比如文件时间戳、系统运行时间计数等)。Python的
time模块在封装Windows系统调用时,已经默认做了偏移转换:会把Windows原生的时间值统一转换为基于1970年的POSIX时间戳后再返回给上层调用,屏蔽了不同平台的底层纪元差异。 - 你传入
time.gmtime()的参数0,本身指代的就是POSIX时间戳的第0秒,Python处理时会直接返回该时间戳对应的UTC时间,因此不管在Windows、Linux还是macOS平台,运行time.gmtime(0)得到的结果都是1970年1月1日。 - 如果你需要获取Windows原生纪元对应的时间值,需要单独调用Windows原生API,Python标准库
time模块不会暴露该底层实现细节。
内容的提问来源于stack exchange,提问作者Stuart Peterson
相关产品推荐
相关产品推荐

