Django 模板语法时间显示误差问题

本文介绍了在Django项目中遇到的一个时间显示问题,即页面渲染的时间比北京时间晚8小时。问题源于settings.py配置文件中TIME_ZONE设置为'UTC',而USE_TZ为True。为解决此问题,只需将TIME_ZONE更改为'Asia/Shanghai',并将USE_TZ设为False,确保时间与本地时间同步。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在使用以下方法时发现,通过此方法在页面渲染出来的时间要比北京时间推迟8个小时

import datetime

def show(request):
    ctime = datetime.datetime.now()
    return render(request, 'data.html', locals())
<p>{{ ctime|date:'Y-m-d H:i:s' }}</p>

这是由于 Django 的 settings.py 配置文件中时区设置默认为美国时区

LANGUAGE_CODE = 'en-us'

TIME_ZONE = 'UTC'

USE_I18N = True

USE_L10N = True

USE_TZ = True

只要修改 TIME_ZONE 和 USE_TZ 的参数即可

LANGUAGE_CODE = 'en-us'

TIME_ZONE = 'Asia/Shanghai'

USE_I18N = True

USE_L10N = True

USE_TZ = False
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值