Django时间问题

来源:互联网 发布:淘宝热卖产品 编辑:程序博客网 时间:2024/05/29 04:04

今天使用Django写一个待办事项的时候,发现一个问题,我写入的是当前时间,但是数据库中显示的就一直不正确。代码如下:

def add_item(request):    log.info(bsf+'begin add_item'+bsf)    error = 'normal'    deal_data = Deal_data()    if request.method == 'POST':        title = request.POST['title']        date = request.POST['date']        res_person_list = request.POST.getlist('ck')        content = request.POST['content']        person = deal_data.deal_res_person(res_person_list)  # 把列表处理为字符串        priority = request.POST['priority']        sel_type = request.POST['type']        rst = deal_data.check_null([title, date, person, priority, content])        log.info('接受的数据为'+title+date+person+priority+sel_type)        if rst == 'success':            error = rst            log.info('='*10+'method = post,everything normal'+'='*10)            up = todo(title=title,                      exp_time=date,                      content=content,                      res_person=person,                      type=sel_type,                      priority=priority,                      write_time=time.strftime("%Y-%m-%d %X", time.localtime()))            up.save()            return render(request, 'todo/add_item.html', {'error': error})        else:            log.error(rst)            error = rst            return render(request, 'todo/add_item.html', {'error': error})    return render(request, 'todo/add_item.html', {'error': error})

这是新增一个待办事项的代码,我在前端传入的日期是20160210,但是在数据库中存储的数据是20160209,数据记录如下:
日志记录
数据库中显示如下:
数据库显示
经过几次不同日期的输入,我发现了一个问题,写入的时间貌似采用的是UTC时区。而我们需要写入的日期就是当前的日期,也就是北京时间。
在settings文件中我已经设置了时区为上海啊,代码如下:

LANGUAGE_CODE = 'zh-cn'TIME_ZONE = 'Asia/Shanghai'

找了一下资料,发现在settings里面还有一个开关没有处理,代码如下:

USE_TZ = False

这个参数默认是True的,改为Flase使用的就是当前时间了。
具体有关时间的详情,可以参考《Django时间的时区问题》

0 0
原创粉丝点击