我有一个关于django.utils.timezone
包的问题。
我在UTC+7时区。因此,如果现在是当地时间16:00,timezone.now()
返回9:00。很好。
但是当我做以下操作时:
current_tz = pytz.timezone('Europe/Moscow') # UTC + 4
timezone.activate(current_tz)
我期望timezone.now()
在当地时间16:00返回12:00,但输出仍然是相同的"9:00"。
timezone.activate()对任何事情都有影响吗?
timezone.now()
显式返回UTC时间。
。激活,然后timezone.localtime(timezone.now())
返回您想要的输出。
这对我来说是有效的,当我试图找出如何在更改列表中更改管理视图中的时区时,我偶然发现了这个问题。下面是我的完整示例:
from django.contrib import admin
from django.utils import timezone
from audience.models import ClientTrending
TRENDING_TZ = 'Canada/Eastern'
class ClientTrendingAdmin(admin.ModelAdmin):
"""Admin Interface configuration for model"""
def get_changelist_instance(self, request):
timezone.activate(TRENDING_TZ)
return super().get_changelist_instance(request)
admin.site.register(ClientTrending, ClientTrendingAdmin)
您也可以像我上面使用的那样传递时区字符串名称值。