操作系统为OS X 10.9.2,Django为1.6.5.

  1.时区

  在setting.py文件中设置了时区  

TIME_ZONE = 'Asia/Shanghai' # 设置时区为UTC+8
USE_TZ = True

  Django的admin页面中显示的日期为北京时间(UTC-8):

  在MySQL数据库中存储的时间为:

  时间不一致的原因时:在setting.py文件中进行时区设置后,Django内部会自动把时间当成北京时间(UTC-8)对待,但MySQL数据库中还是存储为标准时区时间。

  要实现的目标:查询某天的条目。

  代码:

from datetime import date, timedelta
today = date.today() # 今天的日期
d = today
d2 = today+timedelta(days=1)
temp['articles'] = Article.objects.filter(timestamp__range=(d,d2))

  出现报错:/Library/Python/2.7/site-packages/Django-1.6.5-py2.7.egg/django/db/models/fields/__init__.py:848: RuntimeWarning: DateTimeField Article.timestamp received a naive datetime (2014-08-04 00:00:00) while time zone support is active.(RuntimeWarning)

  修改后的代码:

    from django.db.models import Min
from datetime import timedelta
from django.utils import timezone
firstday = Article.objects.aggregate(Min('timestamp'))['timestamp__min']
d1 = firstday.replace(day=1,hour=0,minute=0,second=0,microsecond=0)
now = timezone.now() # 今天的日期
   # 查询从本月1号到今天的条目
while(d1<now):
d2 = d1 + timedelta(days=1)
a = Article.objects.filter(timestamp__range=(d1,d2))
d1 = d2

  各种时间方法获得的时间格式不同:

>>> a.timestamp # 数据库中存储的包含时区的标准时区时间
datetime.datetime(2014, 8, 7, 5, 21, 16, tzinfo=<UTC>)
>>>
>>> from datetime import date
>>> today = date.today()
>>> today
datetime.date(2014, 8, 7) # 没有包含时区信息
>>>
>>> from datetime import datetime
>>> now = datetime.now()
>>> now
datetime.datetime(2014, 8, 7, 13, 51, 20, 925928) # 没有包含时区信息,是北京时间
>>>
>>> from django.utils import timezone
>>> now = timezone.now()
>>> now
datetime.datetime(2014, 8, 7, 5, 53, 29, 798424, tzinfo=<UTC>) #包含时区信息的标准时间
>>>
>>> timezone.localtime(now)
datetime.datetime(2014, 8, 7, 13, 53, 29, 798424, tzinfo=<DstTzInfo 'Asia/Shanghai' CST+8:00:00 STD>) #将标准时间转换为北京时间

  参考资料:

  http://blog.xsudo.com/archives/1224.html  

  http://bbs.csdn.net/topics/390517579

  http://blog.feshine.net/technology/1220.html

  

Django 中的时间处理的更多相关文章

  1. django中navie时间和aware时间详解

    navie时间和aware时间: 什么是navie时间?什么是aware时间? navie时间:不知道自己的时间表示的是哪个时区的.也就是不知道自己几斤几两.比较幼稚. aware时间:知道自己的时间 ...

  2. django中navie time 和 aware time的使用和转换

    在django中有关时间被分为navie time 和 aware time两种,前者指的是不带时区标记的时间格式,后者被认为是带有时区标记的时间格式.在django框架的setting.py文件中 ...

  3. 异步任务队列Celery在Django中的使用

    前段时间在Django Web平台开发中,碰到一些请求执行的任务时间较长(几分钟),为了加快用户的响应时间,因此决定采用异步任务的方式在后台执行这些任务.在同事的指引下接触了Celery这个异步任务队 ...

  4. Mysql事务探索及其在Django中的实践(二)

    继上一篇<Mysql事务探索及其在Django中的实践(一)>交代完问题的背景和Mysql事务基础后,这一篇主要想介绍一下事务在Django中的使用以及实际应用给我们带来的效率提升. 首先 ...

  5. Mysql事务探索及其在Django中的实践(一)

    前言 很早就有想开始写博客的想法,一方面是对自己近期所学知识的一些总结.沉淀,方便以后对过去的知识进行梳理.追溯,一方面也希望能通过博客来认识更多相同技术圈的朋友.所幸近期通过了博客园的申请,那么今天 ...

  6. 在Django中进行注册用户的邮件确认

    之前利用Flask写博客时(http://hbnnlove.sinaapp.com),我对注册模块的逻辑设计很简单,就是用户填写注册表单,然后提交,数据库会更新User表中的数据,字段主要有用户名,哈 ...

  7. django中request对象详解(转载)

    django中的request对象详解 Request 我们知道当URLconf文件匹配到用户输入的路径后,会调用对应的view函数,并将  HttpRequest对象  作为第一个参数传入该函数. ...

  8. Django中如何使用django-celery完成异步任务1(转)

    原文链接: http://www.weiguda.com/blog/73/ 本篇博文主要介绍在开发环境中的celery使用,请勿用于部署服务器. 许多Django应用需要执行异步任务, 以便不耽误ht ...

  9. Django中的Model(字段)

    Model Django中的model是用来操作数据库的,Model是一个ORM框架,我们只需要关心model的操作,而不需要关心到底是哪一种数据库. 一.基本知识: 数据库引擎: Django中自带 ...

随机推荐

  1. NULL Pointer Dereference(转)

    0x00 漏洞代码 null_dereference.c: #include <linux/init.h> #include <linux/module.h> #include ...

  2. C#栈Stack的使用

    using System; using System.Collections.Generic; namespace CSharp栈 { class Program { static void Main ...

  3. ★房贷计算器 APP

    一.目的 1. 这是一个蛮有用的小工具 2. 之前看了很多demo,第一次来完全的自己实现一个APP 3. 完成之后提交 App Store 4. 作为Good Coder的提交审核材料 二.排期 周 ...

  4. 使用Spring Cloud需要了解一些概念

    Spring Cloud是一个基于Spring Boot实现的微服务架构开发工具,它为基于JVM的微服务开发中的配置管理.服务发现.断路器.智能路由.微代理.控制总线.全局锁.决策竞选.分布式会话和集 ...

  5. [LUOGU] P2679 子串

    一开始用一个f数组转移,发现不太对,状态有重叠部分 f[i][j][k]表示考虑了s的前i位,匹配到t的第j位,用了k个子串,且s的第i位必选 g[i][j][k]表示考虑了s的前i位,匹配到t的第j ...

  6. layer的iframe层的传参和回参

    从父窗口传参给iframe,参考://https://yq.aliyun.com/ziliao/133150 从iframe回参给父窗口,参考:https://www.cnblogs.com/jiqi ...

  7. kill, killall, pkill, xkill

    1. Kill Command – Kill the process by specifying its PID All the below kill conventions will send th ...

  8. Python爬虫环境常用库安装

    1:urllib urllib.request这两个库是python自带的库,不需要重新安装,在python中输入如下代码: import urllibimport urllib.requestres ...

  9. Redis数据库(一)

    1. Redis简介 Redis是非关系型数据库(nosql),数据保存在内存中,安全性低,但读取速度快. Redis主要存储变化较快且数据不是特别重要的数据. Redis是一个key-value存储 ...

  10. tensorboard以时间命名每一个文件夹

    tensorboard 有一个良好的命名习惯以时间命名每一个文件夹,例如**20190523_081232** ''' from datetiome import datetime dir = os. ...