您在这里错过的是时区。
大概您已经UTC休息了五个小时,因此2013-09-01T11:00:00本地和2013-09-01T06:00:00Z是同一时间。
您需要阅读
datetime文档的顶部,其中解释了时区以及“天真”和“感知”对象。
如果您原始的原始日期时间是UTC,则恢复它的方法是使用
utcfromtimestamp而不是
fromtimestamp。
另一方面,如果您原始的原始日期时间是本地的,那么您不应该首先从中减去UTC时间戳;使用
datetime.fromtimestamp(0)代替。
或者,如果您有一个已知的日期时间对象,则需要在两侧都使用本地(意识)纪元,或者显式地与UTC进行转换。
如果您拥有或可以升级到Python
3.3或更高版本,则可以通过仅使用
timestamp方法来避免所有这些问题,而不必尝试自己弄清楚该如何做。即使您不这样做,也可能要考虑借鉴其源代码。
(如果您可以等待Python 3.4,那么PEP
341可能会进入最终版本,这意味着JF
Sebastian和我在评论中谈论的所有内容都只能使用stdlib来完成,并且在Unix和Windows上均以相同的方式工作。)



