我有一个模型,该模型在模型的__str__()
方法中显示短字符串
def __str__(self):
return "Scheduled at %s" % (self.date_time.strftime("%B %d %Y %I:%M %p"))
#Output: <Task: Scheduled at September 30 2018 12:30 AM>
# it should have been: <Task: Scheduled at September 29 2018 08:30 PM>
当我去 Django管理员时,在标题任务:计划于2018年9月30日上午12:30 中看到,并且在输入中充满了正确的TIME_ZONE
: 20:30:00
settings.py
TIME_ZONE = 'Etc/GMT+4'
USE_I18N = False
USE_L10N = False
USE_TZ = True
他一直显示UTC时区的时间,但是我在设置中设置了TIME_ZONE='Etc/GMT+4
。
我希望将时间数据以UTC格式保存在数据库中,并以TIME_ZONE显示,在我的情况下为Etc/GTM+4
答案 0 :(得分:2)
Django在displaying values with templates时转换日期时间。如果要在任意代码块中进行转换,请使用localtime()
帮助器:
from django.utils.timezone import localtime
def __str__(self):
return "Scheduled at %s" % localtime(self.date_time).strftime("%B %d %Y %I:%M %p")