Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django将记录集中的所有日期转换为时区感知_Python_Django_Django Timezone - Fatal编程技术网

Python Django将记录集中的所有日期转换为时区感知

Python Django将记录集中的所有日期转换为时区感知,python,django,django-timezone,Python,Django,Django Timezone,我有一个django模型,它使用mysql作为数据库,并且我使用时区支持。我的模型中有一个字段有日期 因为mysql不能在datefield中存储时区信息,所以我将时区偏移量存储在另一个字段中。在查询数据库时,我希望使用存储在数据库中的偏移量将所有日期转换为时区感知 您可以假设我的模型如下所示: class Item(models.Model): pubDate = models.DateTimeField(verbose_name="publish date") pubDate

我有一个django模型,它使用mysql作为数据库,并且我使用时区支持。我的模型中有一个字段有日期

因为mysql不能在datefield中存储时区信息,所以我将时区偏移量存储在另一个字段中。在查询数据库时,我希望使用存储在数据库中的偏移量将所有日期转换为时区感知

您可以假设我的模型如下所示:

class Item(models.Model):
    pubDate = models.DateTimeField(verbose_name="publish date")
    pubDate_tz = models.IntegerField()
我目前的查询是:

items = Item.objects.all().filter(channel__category = category, pubDate__range=[today_date, tomorrow_date]).order_by('-pubDate')
但在我的模板中,我希望使用item.pubDate自动转换为本地时区


谢谢。

尝试使用时区。是否在查询中让您知道

这里的文档中的信息

时区感知转换的一个基本示例:

today = timezone.now()

today_aware = timezone.make_aware(time_ago, timezone.get_default_timezone())
因此,您需要将timezone.now替换为item.pudbate查询


如果时区始终相同,则可以使用第二个参数timezone.get_default_timezone设置时区。如果时区更改,则应能够将其设置为数据库中的值

是否为pubDate naive UTC datetime?是的,这就是问题所在。如何将其批量转换为datetime感知?这对我不起作用,我需要转换所有时区,而不仅仅是一个。