spe*_*ane 5 python django google-app-engine localization
我在Django和Google App Engine上使用python.我也在我的一个模型中使用DateTimeProperty.偶尔我想向用户显示该日期和时间.
将DateTimeProperty中存储的日期时间转换为用户日期时间的最佳方法是什么?
或者更精确地构建问题的方法:获取客户端时区并将python datetime对象转换为自己的本地时间的最佳方法是什么?
这是一个Python问题,而不是GAE问题,除非GAE有一些基础设施来促进这一点(我做了一个快速扫描,但没有找到任何参考).
基本上,您希望以UTC时区存储日期/时间(例如使用datetime.datetime.utcnow)以及用户时区,您可以尝试从用户IP中提取(使用GeoDjango,如果可以在GAE上使用,或者是pygeoip;您需要一些地理位置数据库,如:http://www.maxmind.com/app/geolitecity),或明确询问用户有关它 - 这有一个优势,你可以要求一个描述性的时区名称,如"欧洲/华沙".如果你只要求UTC + 2,那么你就会失去DST转换的任何迹象.
然后,您可以使用例如pytz从utc切换到所需的时区:
import pytz
local_tz = pytz.timezone(timezone_name)
return timestamp_utc.replace(tzinfo=pytz.utc).astimezone(local_tz).replace(tzinfo=None)
Run Code Online (Sandbox Code Playgroud)
- timestamp_utc您要转换的utc日期时间在哪里,timezone_name是提到的"Europe/Warsaw".
(请注意,我不知道哪些在GAE中起作用,但至少你会知道要寻找什么)
| 归档时间: |
|
| 查看次数: |
3666 次 |
| 最近记录: |