在Django中使用values_list获取本地时间

时间:2018-11-29 03:53:46

标签: django

我设置了settings.TIME_ZONE = Europe/Paris

在django中,我得到这样的日期:dates = (...).values_list('started_at', flat=True)

但结果日期以UTC为单位。

datetime.datetime(2018, 11, 28, 2, 23, 54, 361753, tzinfo=<UTC>)

如何在不转换所有日期的情况下获取本地时间的日期?

from django.utils.timezone import localtime
dates = [localtime(d) for d in dates]

1 个答案:

答案 0 :(得分:0)

数据库中的值将始终为UTC。如documentation中所述:

  

启用时区支持后,Django将日期时间信息存储在数据库中的UTC中,在内部使用可识别时区的日期时间对象,并将其转换为模板和表格形式的最终用户时区。

因此,如果您想在Python代码中使用本地时间,则确实需要按照您的描述自行进行转换。