【发布时间】:2013-11-17 01:53:36
【问题描述】:
我有dt = datetime(2013,9,1,11),我想获取此日期时间对象的 Unix 时间戳。
当我执行(dt - datetime(1970,1,1)).total_seconds() 时,我得到了时间戳1378033200。
当使用datetime.fromtimestamp 将其转换回来时,我得到了datetime.datetime(2013, 9, 1, 6, 0)。
时间不匹配。我在这里错过了什么?
【问题讨论】:
-
附带说明,如果您使用的是 Python 3.3+,那么您真的非常想使用
timestamp方法,而不是自己尝试。一方面,这完全避免了从不同时区减去幼稚时间的可能性。 -
dt来自哪里?是当地时间还是 UTC 时间? -
@abarnert 我还想提交清除所有代码页和 unicode 符号的请求,也就是说,禁止所有非 ascii 和非默认代码页语言。仍然允许绘制符号。
-
@DanielF:请求被拒绝。我对在这里创造一种单一世界的语言不感兴趣,即使我们这样做了,我也不想让历史语言学家和托尔金学者的生活变得不可能。 Unicode 已经解决了这个问题,除了某些组织和产品(TRON 联盟、在 UTF-8 上使用 Shift-JIS 的日本软件、Microsoft 仍在为用户文本文件提供默认为 cp1252 的操作系统以及各种假装 UTF -16 是一个固定宽度的字符集和/或与 Unicode 相同的字符集)需要受到惩罚才能使它们对齐。