使用Python/Django 1.5.4,我正试图找到一种获取英国伦敦当前时间的方法。
这样做似乎异常复杂
显然存在time.time()、datetime.now()和datetime.ucnow(),但这些方法返回服务器时间。
这是一个问题,因为服务器可能不在英国,而且上述方法没有考虑夏令时。
有没有一种简单、直接的方法可以做到这一点,而不需要过度导入和第三方应用程序?
在django中使用from django.utils import timezone and use timezone.now
而不是使用time.time()、datetime.now()和datetime.ucnow()。这是专门为处理django中的此类场景而设计的。欲了解更多信息,请点击此处。
获取英国伦敦的当前时间:
#!/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
定义的默认时区。