首先,在使用mysql数据库的时候,并没有使用数据库的时间格式,而是,直接在数据库中将时间保存为字符串的。结果项目上线之后,发现时间并不是北京时间。项目上线是在ubuntu16.4上,使用uwsgi和nginx部署的。下边记录我解决问题的步骤
1排除数据库的问题
因为并没有使用数据库中的时间格式,只是在数据库中保存的字符串,所以肯定不是数据库的问题
2排除ubuntu系统
使用date查看了ubuntu的系统时间,发现系统时间正常
3排除python
使用python的shell。import datetime包 然后 print(datetime.datetime.now()) 发现时间也是正常的。感觉,python中使用的时间模块应该是调用的系统的时间。
4只能是django的问题了
使用python manage.py shell进入django的shell 执行import datetime和print(datetime.datetime())两条命令之后。终于发现时间是不正确的。
找到问题之后就需要来解决问题了
进入项目的settings.py文件
找到
LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'Asia/Shanghai' #将这一项的内容改成你所需要地区的时区国内使用
USE_I18N = True
USE_L10N = True
USE_TZ = False #这一项设置为false,设置为true将默认使用美国时间 ,这也是之前出错的地方所在
现在我们检出项目中的时间,就会发现,时间已经正常