mysql的时间在vue中显示相差8个小时
Vue 10:00:00
Django (USE_TZ = True, Django会自动根据所设的时区对时间进行转换; 改为False即可)
MySQL 2:00:00
=========================
原因: 中间某个环节的时区不对.
我这里是mysql的时区不对.
解决办法: 全局修改时区设置. 可以通过修改配置文件, 但需要重启服务, 非常麻烦. 因此推荐使用命令行的方式.
1、查询当前系统时间
select now();
2、检查MySQL系统时区
show variables like '%time_zone%';
3、设置时区
set global time_zone = '+08:00'; // 修改mysql全局时区为北京时间,即我们所在的东8区
set time_zone = '+08:00'; // 修改当前会话时区
4、立即刷新生效
flush privileges;
原文链接: https://cloud.tencent.com/developer/article/2242859
=======================
RuntimeWarning: DateTimeField AAA.collecttime received a naive datetime (2024-08-17 00:00:01) while time zone support is active.
warnings.warn("DateTimeField %s received a naive datetime (%s)"
: DateTimeField received a naive datetime ( ) while time zone support is active.
这是一个跟时区有关的问题,报错中说到datetime字段得到一个naive datetime,而不是支持time zone的active datetime
由于Django的设置 USE_TZ 设置为True,Django会自动根据所设的时区对时间进行转换,所以程序中和数据保存的时间都转UTC时间,只有模版渲染时会把时间转为TIME_ZONE所设置的时区的时间。
使用 datetime.datetime.utcnow() 输出的是不带时区的utc时间,称为naive time
from datetime import datetime
datetime.now()
datetime.datetime(2016, 06, 19, 07, 14, 55, 865000)
使用 django.utils.timezone.now() 输出的是带时区的 utc时间,称为 active time
from django.utils import timezone
timezone.now()
datetime.datetime(2016, 06, 19, 07, 15, 48, 367000, tzinfo=<UTC>)
如果项目需要根据时区显示时间,那就使用Django的timezone.now()。不需要的话将USE_TZ设置为False即可。
使用带时区的时间,将所有用到datetime.now()的地方改为timezone.now(),并在对应的文件顶部加上from django.utils import timezone,就OK了。
如果项目中已经有了很多datetime.now(),又不想大面积改动的话,可以将import的语句修改一下
# from datetime import datetime # 原来用的注释掉
from django.utils import timezone as datetime # 不想大面积修改就这么做
=========================
时区问题,datetime.now()生成的不带时区的utc时间称为native time
使用django.utils.timezone.now()输出的是带时区的utc时间,称为active time
# from datetime import datetime # 注释的
from django.utils import timezone as datetime # 添加的
链接:https://blog.csdn.net/heybob/article/details/77319867
=========================
# settings.py
USE_TZ = False
=========================
标签:now,vue,time,00,datetime,MySQL,import,时区,Django From: https://www.cnblogs.com/emanlee/p/18469922