2

在 Google App Engine 中,我用来nowTime = datetime.datetime.now()获取系统时间。但是,我发现它与计算机系统时间不同。例如,nowTime2012-12-20 14:44:30.910192,但我的计算机系统时间是2012-12-20 22:44。有八小时的差异。是因为时区吗?Google App Engine SDK 从哪里获得时间?谢谢。

4

1 回答 1

5

请参阅http://timezones.appspot.com/ - GAE 时区将始终在 中UTC,这就是您看到 8 小时差异的原因。根据网站:

运行时的 TZ 环境变量设置为 UTC,并且无法更改。例如 time.time() 和 datetime.datetime.now() 返回的时间戳将始终采用 UTC。同样,数据存储中的日期时间属性将始终作为 UTC 存储和返回。

您可以使用 astimezone() 方法更改内存中日期时间的时区。如果没有设置 datetime 的 tzinfo 成员,您首先需要使用 replace() 方法将其设置为 UTC tzinfo。

您还可以在此处查看它的文档,以及如何进行特殊处理的示例。

于 2012-12-20T15:01:30.993 回答