详解django2中关于时间处理策略

  

  

, <代码> DateField> 日期类型

  

2, <代码> DateTimeField> datetime>   

3 <代码> TimeField> 时间>   

  

钠碧叶时间和意识时间

  
      <李>钠碧叶没有指定时区的,不知道自己的时间。   <李>注意指定了时区,知道自己的时间。   
  

pytz库:专门用来处理时区的库,经常更新一些时区的数据
  

  

astimezone方法
  

  

将一个时区的时间转换为另一个时区的时间,这个方法只能被意识到的类型的时间调用,
  

  

不能被钠碧叶的类型的时间调用

        进口pytz   从datetime进口datetime   现在=datetime.now() #这是一个钠碧叶类型的时间   utc_timezone=pytz.timezone (UTC) #定义UTC的时区对象   utc_now=now.astimezone (utc_timezone) #将当前时区时间转换为UTC时区的时间   在比;ValueError: astimezone()不能用于钠碧叶datetime   #会抛出一个异常,原因就是因为钠碧叶类型的时间不能调用astimezone方法      现在=now.replace (tzinfo=pytz.timezone(亚洲/上海))   utc_now=now.astimezone (utc_timezone)   #这时候就可以进行时区的转换      #更改时间      

  

1,在<代码>设置。py>         TIME_ZONE='亚洲/上海' #时区的选择   #如果USE_TZ=False,那么django获取到的当前时间就是一个钠碧叶类型的时间,   #网上很多资料写的是设置假,但是实际开发过程中设置事实   USE_TZ=True      

2,在一个<代码>软件>         django。数据库导入模型         类ArticleModel (models.Model):   ”“”   文章的模型   ”“”   title=模型。CharField (max_length=100, verbose_name='文章标题”)   create_time=models.DateTimeField (verbose_name='文章创建时间的)      类元(对象):   db_table='文章'      def __str__(自我):   返回“& lt; ArticleModel> ({}, {})“.format(自我。标题、self.create_time)      

3,在视图类中手动的添加一条数据

        django。快捷方式进口呈现   django。视图导入视图   #引入模块   从django.utils。时区现在导入,本地时间   从。导入模型         类ArticleView(观点):   ”“”   文章的视图类   ”“”      def get(自我,请求,* args, * * kwargs):   models.ArticleModel.objects。创建(title='第一篇文章”,现在create_time=())   返回渲染(请求,article.html)      

4,查看数据库数据

  

实际上我这是差不多下午13点了,刚好相差8小时

  

详解django2中关于时间处理策略

  

5,查询出来的数据使用<代码>本地时间>         django。快捷方式进口呈现   django。视图导入视图   #引入模块   从django.utils。时区现在导入,本地时间   从。导入模型         类ArticleView(观点):   ”“”   文章的视图类   ”“”      def get(自我,请求,* args, * * kwargs):   结果=models.ArticleModel.objects.get (pk=1)   打印(结果)   print(本地时间(result.create_time))   返回渲染(请求,article.html)      

6,在模板(<代码> html>         & lt; p>{{文章。标题}}& lt;/p>   & lt; p>{{文章。create_time}} & lt;/p>   & lt; !——直接使用django内置过滤器格式化数据——比;   & lt; p>{{文章。create_time |日期:“Y-m-d H:我:“}}& lt;/p>      

7,如果你在<代码>设置。py> TIME_ZONE=把侵?上海”配置不同的时区,在用户页面展示的结果也会不一样的。

  

  

1,使用字段
  

        create_time=模型。DateTimeField (auto_now_add=True, null=True, verbose_name=按唇ㄊ奔涞?   update_time=模型。DateTimeField (auto_now=True, null=True, verbose_name=靶薷氖奔涞?

详解django2中关于时间处理策略