Python中的纪元开始时间是否独立于平台(例如,总是1/1/1970)?
或者它依赖于平台?
我想在运行Python的各种机器上序列化datetimes (以第二精度),并且能够在不同的平台上读回它们,可能也使用不同的编程语言(而不是Python)。序列化纪元时间是个好主意吗?
发布于 2013-01-07 04:09:45
The documentation说:
要找出纪元是什么,请查看
gmtime(0)。
我会将此解释为没有特定的时代是有保证的。
另请参见this Python-Dev thread。这似乎证实了这样的观点,即在实践中,纪元总是被假定为1970/01/01,但语言并没有明确保证这一点。
这样做的结果是,至少对于Python,您可能可以使用纪元时间,除非您正在处理陌生和晦涩的平台。对于使用非Python工具进行阅读,您可能也没问题,但要特别确保您需要阅读这些工具提供的文档。
发布于 2013-01-07 04:06:47
Epoch time (unix时间)是一个标准术语:
http://en.wikipedia.org/wiki/Unix_time
Unix时间,或POSIX时间,是一种用于描述时间实例的系统,定义为自协调世界时(UTC)于1970年1月1日午夜以来所经过的秒数,注释1不包括leap seconds.note 2。它在类Unix和许多其他操作系统和文件格式中被广泛使用。它既不是时间的线性表示,也不是UTC.note 3 Unix时间的真实表示。在某些Unix系统上,可以通过在命令行中键入date +%s来检查
这意味着如果你通过Python使用纪元时间,它将在不同的平台上保持一致。保持一致性的最好办法是在所有情况下都使用UTC。
发布于 2013-01-07 04:08:13
time()总是返回来自纪元的时间,看看documentation。
请注意,Epoch始终是1970年以来的秒数,但由于不同机器上的时钟不同-您可能会遇到一些问题。
引文:
纪元是时间开始的点。在那一年的1月1日,在零点,“自纪元以来的时间”是零。对于Unix,纪元是1970年。要找出纪元是什么,请查看gmtime(0)。
和:
time.time()?
以浮点数的形式返回自纪元以来的时间(秒)。请注意,尽管时间总是以浮点数的形式返回,但并非所有系统都提供比1秒更高的时间精度。虽然此函数通常返回非递减的值,但如果系统时钟在两次调用之间被调回,则它可以返回比前一次调用更低的值。
(都来自Python文档)。
https://stackoverflow.com/questions/14186179
复制相似问题