在使用以下方法时发现,通过此方法在页面渲染出来的时间要比北京时间推迟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