我是用户GAE的ndb
用于数据存储,并且具有date
属性定义如下
class GuestMessage(ndb.Model):
date = ndb.DateTimeProperty(auto_now_add=True)
现在我可以很容易地用e.date.strftime('%Y-%m-%d %H:%M:%S')
打印得到2013-06-03 05:46:50
但是我怎么能打印它像2013-06-03 05:46:50 +0000
或2013-06-03 13:46:50 +0800
根据用户的时区设置?
datetime对象没有tzinfo对象。所以请试试这个
import pytz
from pytz import timezone
query = GuestMessage.all().get()
current = query.date
user_tz = timezone('Asia/Singapore')
current = current.replace(tzinfo=pytz.utc).astimezone(user_tz)
self.response.write(current.strftime('%Y-%m-%d %H:%M:%S %z')) # 2013-05-22 19:54:14 +0800
self.response.write(current.strftime('%Y-%m-%d %H:%M:%S %Z')) # 2013-05-22 19:54:14 SGT
从请求头中查找时区:
county_code = self.request.headers['X-Appengine-Country'] # Return County code like SG, IN etc.
tz = pytz.country_timezones(county_code)
如果您正在获得ImportError: No module named pytz
,请从这里下载源代码:pypi.python.org/pypi/gaepytz。然后将pytz目录移动到应用引擎项目的根目录