如何获得日光照明GMT

时间:2015-12-02 10:48:09

标签: python django datetime time timezone

使用Python / Django 1.5.4,我试图找到一种方法来获取当前在英国伦敦的时间。

这样做似乎令人惊讶地复杂。

显然有time.time(),datetime.now(),datetime.utcnow(),但这些方法会返回服务器时间。

这是一个问题,因为服务器可能不在英国,上述方法不考虑夏令时。

在没有过多导入和第三方应用程序的情况下,是否有一种简单,直接的方法?

2 个答案:

答案 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定义的默认时区。