首页 > 解决方案 > 无法在模板中将 UTC 时间戳转换为本地时间

问题描述

我很难使用 Django 文档中提供的模板标签将此时间戳值转换为本地时间:

 {% load tz %}
 {% get_current_timezone as TIME_ZONE %}
 {{ private_message.timestamp|timezone:TIME_ZONE|date:'m/d/Y: h:i a' }}

我尝试了许多不同的模板标签包括load localtime和其他。无论如何,时间仍显示为 UTC。

设置:

TIME_ZONE = 'UTC'

USE_I18N = True

USE_L10N = True

USE_TZ = True

我将时间戳保存timezone.now()在我的views.py中

任何帮助将不胜感激。谢谢!

标签: pythondjango

解决方案


关键是,您的时区仍设置为 UTC。

TIME_ZONE = 'UTC'

所以,对于像 UTC+2 这样的东西,你可以使用

TIME_ZONE = 'Europe/Istanbul'

您可以在此处访问所有有效时区。

参考

编辑

您可以尝试使用它来获取本地日期吗?

from django.utils.timezone import localtime, now

# get now datetime based upon django settings.py TZ_INFO
localtime(now())

推荐阅读