Python Django将记录集中的所有日期转换为时区感知
我有一个django模型,它使用mysql作为数据库,并且我使用时区支持。我的模型中有一个字段有日期 因为mysql不能在datefield中存储时区信息,所以我将时区偏移量存储在另一个字段中。在查询数据库时,我希望使用存储在数据库中的偏移量将所有日期转换为时区感知 您可以假设我的模型如下所示: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
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感知?这对我不起作用,我需要转换所有时区,而不仅仅是一个。