使用Python / Django 1.5.4,我试图找到一种方法来获取当前在英国伦敦的时间。
这样做似乎令人惊讶地复杂。
显然有time.time(),datetime.now(),datetime.utcnow(),但这些方法会返回服务器时间。
这是一个问题,因为服务器可能不在英国,上述方法不考虑夏令时。
在没有过多导入和第三方应用程序的情况下,是否有一种简单,直接的方法?
答案 0 :(得分:1)
而不是使用time.time(),datetime.now(),datetime.utcnow(),而在django中使用from django.utils import timezone and use timezone.now
。这是专为在django中处理此类场景而设计的。如需进一步阅读,请查看here。
答案 1 :(得分:1)
要获得英国伦敦的当前时间:
#!/usr/bin/env python
from datetime import datetime
import pytz # $ pip install pytz
print(datetime.now(pytz.timezone('Europe/London')))
即使在DST过渡期间,当本地时间可能不明确时,它也能正常工作。
在django
中,设置USE_TZ=True
并使用timezone.now()
以UTC格式获取当前时间作为有意识的日期时间对象。它使用您可以使用.activate()
设置的当前时区在模板中呈现,否则使用由TIME_ZONE
定义的默认时区。