因为自己写的东西是跑在米国的原因,所以时区问题是必须要解决的。之前的Django应用比如这个blog对于时区的处理直接在settings.py里面设置TIME_ZONE就可以,但是web.py就需要自己去处理这个问题了。通过阅读Django的代码发现,设置时区只要利用time模块的tzset方法就可以(UNIX适用)。
首先设置settings.TIME_ZONE = "Asia/Shanghai" (time.tzset还接受一些别的格式,请查看文档)
import os import time def switch_time_zone(): """ 切换时区到settings.TIME_ZONE """ os.environ["TZ"] = settings.TIME_ZONE time.tzset()
这样时区就被设置成了中国的时区了,使用 datetime.datetime.now() 就可以看到变化了。
另外如果使用的是postgresql数据库的话,需要运行 SET TIME ZONE "Asia/Shanghai" 来设置数据库使用的时区。
😊 如果你喜欢这篇文章,也欢迎了解我的书: 《Python 工匠:案例、技巧与工程实践》 。它专注于编程基础素养与 Python 高级技巧的结合,是一本广受好评、适合许多人的 Python 进阶书。