在Google App Engine中,我使用nowTime = datetime.datetime.now()
来获取系统时间。但是,我发现它与计算机系统时间不同。例如,nowTime
为2012-12-20 14:44:30.910192
,但我的计算机系统时间为2012-12-20 22:44
。有八个小时的差异。是因为时区吗? Google App Engine SDK从哪里获得时间?感谢。
答案 0 :(得分:5)
请参阅http://timezones.appspot.com/ - GAE时区将始终位于UTC
,这就是您看到8小时差异的原因。根据网站:
运行时的TZ环境变量设置为UTC,但不能 改变。例如,返回的时间戳time.time()和 datetime.datetime.now()将始终为UTC。同样,日期时间 数据存储区中的属性将始终存储并以UTC格式返回。
您可以使用更改内存中日期时间的时区 astimezone()方法。如果没有设置datetime的tzinfo成员,那么你就可以了 首先需要使用replace()方法将其设置为UTC tzinfo。
您还可以看到它记录在here,并举例说明如何进行特殊处理。