django.utils.timezone.activate effect



我有一个关于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)

您也可以像我上面使用的那样传递时区字符串名称值。

相关内容

  • 没有找到相关文章

最新更新