django-区分时区的时间类型
# aware time:清醒的时间(清醒的知道自己这个时间代表的是哪个时区的)
# navie time:幼稚的时间(不知道自己的时间代表的是哪个时区)
在settings.py中设置
LANGUAGE_CODE = 'en-us' TIME_ZONE = 'Asia/Shanghai' # need1 USE_I18N = True USE_L10N = True USE_TZ = True # 设置为aware time ps:清醒的时间,自动区分时区 need2
#### 使用aware time 进行计算操作。出现的错误
can't subtract offset-naive and offset-aware datetimes 因为在django中使用的是aware time,而通过datetime.now()获取当前时间是 navie time类型, 解决办法:使用django提供的获取当前aware time类型的时间
from django.utils.timezone import now
# -*- coding: utf-8 -*-
from datetime import datetime
from django import template
from django.utils.timezone import now register = template.Library() @register.filter
def time_since(value):
"""
time距离现在的时间间隔
1.如果时间间隔小于1分钟以内,那么就显示“刚刚”
2.如果是大于1分钟小于1小时,那么就显示“xx分钟前”
3.如果是大于1小时小于24小时,那么就显示“xx小时前”
4.如果是大于24小时小于30天以内,那么就显示“xx天前”
5.否则就是显示具体的时间
2017/10/20 16:15
"""
print(value) # aware time类型
if not isinstance(value, datetime):
return value
# now_time = datetime.now() # navie time类型
now_time = now() # django内置的获取当前aware time类型
timestamp = (now_time - value).total_seconds() # 将datatime类型转化成秒
if timestamp < 60:
return '刚刚'
elif timestamp <= 60 * 60:
return "%s分钟前" % (int(timestamp / 60)) # 转成整数
elif timestamp <= 60 * 60 * 24:
return "%s小时前" % (int(timestamp / (60 * 60)))
elif timestamp <= 60 * 60 * 24 * 30:
return "%s天前" % (int(timestamp / (60 * 60 * 24)))
return value.strftime('%Y/%m/%d %H:%M')
django-区分时区的时间类型的更多相关文章
- KingbaseES 时间类型数据和oracle时间类型的区别
Oracle日期时间类型有两类,一类是日期时间类型,包括Date, Timestamp with time zone, Timestamp with local time zone.另一类是Inter ...
- c++ 时间类型详解 time_t
Unix时间戳(Unix timestamp),或称Unix时间(Unix time).POSIX时间(POSIX time),是一种时间表示方式,定义为从格林威治时间1970年01月01日00时00 ...
- MySQL数据类型--日期和时间类型
MySQL中的多种时间和格式数据类型 日期和时间类型是为了方便在数据库中存储日期和时间而设计的.MySQL中有多种表示日期和时间的数据类型. 其中,year类型表示时间,date类型表示日期,time ...
- C++时间类型详解( time_t 和 tm )
原文:http://blog.csdn.net/love_gaohz/article/details/6637625 Unix时间戳(Unix timestamp),或称Unix时间(Unix tim ...
- 一篇文章解决django中时区问题
首先要明确的是,当在Django项目的setting.py文件中设置了USE_TZ=True时,我们给定的时间存储到数据库的时候都会变成UTC时间(使用auto_now_add和auto_now为Tr ...
- oracle之时间类型
Oracle 时间类型及Timezone 20.1 Oracle的六种时间类型 DATETIMESTAMPTIMESTAMP WITH TIME ZONETIMESTAMP WITH LOCAL TI ...
- Mysql时间类型处理
关于Mysql中时间的处理 最近在读<人类简史>,读第二遍.只有晚上睡觉之前读一点点,有时候觉得一天可以抽出一个专门的时间来看书了,效率应该能高不少. 另外分享个网址可以随心创作 这里有一 ...
- PHPExcel对于Excel中日期和时间类型的处理
PHPExcel是一款优秀的处理Excel文件读写的开源PHP Library,能够给我们提供强大的Excel读写能力,本文针对Excel处理过程中关于日期和时间类型的处理进行深入的讨论.PHPExc ...
- SQL Server的日期和时间类型
Sql Server使用 Date 表示日期,time表示时间,使用datetime和datetime2表示日期和时间. 1,秒的精度是指使用多少位小数表示秒 DateTime数据类型秒的精度是3,D ...
随机推荐
- 20155117王震宇 2016-2017-2 《Java程序设计》第七周学习总结
教材学习内容总结 时间度量 格林尼治标准时间(GMT):现在GMT已不作为标准时间使用. 世界时(UT):借助观测远方星体跨过子午线而得,受地球自转速度影响. 国际原子时(TAI):铯原子辐射振动幅度 ...
- HDU 1114:Piggy-Bank(完全背包)
Piggy-Bank Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total ...
- linux的性能优化
转一位大神的笔记. linux的性能优化: 1.CPU,MEM 2.DISK--RAID 3.网络相关的外设,网卡 linux系统性能分析: top:linux系统的负载,CPU,MEM,SWAP,占 ...
- Array、ArrayList 区别
ArrayList可以算是Array的加强版,(对array有所取舍的加强). 存储内容比较(可包含元素的类型不同.数组要求存储同种类型): Array数组可以包含基本类型和对象类型, ArrayLi ...
- tyvj1172自然数拆分
题目:http://www.joyoi.cn/problem/tyvj-1172 非常水的完全背包.物品就是1~n这n个数. 第6行有橙色的警告:this decimal constant is un ...
- spring Annotation based configuration
spring 注解相关 https://docs.spring.io/spring/docs/3.0.0.M3/reference/html/ch04s11.html
- c++开发环境搭建
>>>>>>>>>>>>>>>>>>>>>开发环境搭建<<&l ...
- bzoj 3978: [WF2012]Fibonacci Words
Description 斐波那契01字符串的定义如下 F(n) = { 0 if n = 0 1 if n = 1 F(n-1)+F(n-2) if n >= 2 } 这里+的定义是字符串的 ...
- 中点Brehensam画圆算法
#include<stdio.h> #include<stdlib.h> #include<graphics.h> #include<math.h> v ...
- java web程序 jdbc连接数据库错误排查方法
学习jsp.我遇到了麻烦,我总是看不懂500错误,因为每次都显示整个页面的错误,都是英文 我看不懂,后来,把他弄烦了,我也烦了,比起学习java.那个异常可以很简单的就知道.现在解决 了第一个问题,5 ...