django - 时间相关函数汇总

tech2024-11-11  6

#引入模块 #使用 import datetime 来导入 使用时前面多加 datetime.datetime即可 import datetime #相关函数 time.strftime('%Y-%m-%dT%H:%M:%S') 转换字符串 timestr.strptime(time1, "%Y-%m-%d %H:%M:%S") 转换UTC时区 #timedelte 可用值 #days seconds microseconds milliseconds minute hours weeks subtime = utc_time - datetime.timedelta(hours=8); 增加或减少时间 #时间折叠 #dates() datetimes() #dates kind应该是"year","month","week","day", datetimes的kind追加 "hour","minute",或"second" #day month会自动区分年份 datatime_log.objects.dates('datetime',"day").filter(userid = 1).count(); # dates返回日期不同的结果集 count 计算总数 #时间筛选 #使用django.utils.timezone.now()输出的是带时区的utc时间,称为active time from django.utils import timezone timezone.now() datetime.datetime(2016, 06, 19, 07, 15, 48, 367000, tzinfo=<UTC>) #使用datetime.datetime.utcnow()输出的是不带时区的utc时间,称为naive time from datetime import datetime datetime.now() datetime.datetime(2016, 06, 19, 07, 14, 55, 865000) #如果项目需要根据时区显示时间,那就使用Django的timezone.now()。不需要的话将USE_TZ设置为False即可。 USE_TZ=False now = datetime.now() #获取现在的时间 start = datetime.timedelta(hours=23,minutes=59,seconds=59) #获取当前时间中的一天内的开始时间 #查询一天内的数据 #gt 大于 #gte 大于等于 #lt 小于 #lte 小于等于 #当前日期数据 即 一天内的数据 .date() .time() datatime_log.objects.filter(datetime__gte=datetime.datetime.now().date()) #当前时间数据 datatime_log.objects.filter(datetime__gte=datetime.datetime.now().time()) #指定时间数据 datatime_log.objects.filter(userid='1', datetime__year='2020', datetime__month='8',datetime__day='10') #查询某年 __year #查询某月 __month #查询某天 __day #查询星期几__week__day model.objects.filter(date_time_field__month=9) model.objects.filter(date_time_field__month=9) datatime_log.objects.filter(datetime__year=2020,datetime__month=9,userid=1) #或者 查询一天内的数据 date_now = datetime.date.today() 获取当天的日期 da = datetime.timedelta(30) #要查询的天数 #时间范围 #__range 范围 xxx__range=[date_now -da,date_now]) start = datetime.date(2018,7,12) end = datetime.date(2018,7,13) model.objects.filter(time_filed__range=(start,end)) #时间加减 m = datatime_log.objects.get(id=10).datetime v = datatime_log.objects.get(id=11).datetime k = v-m #确认相差的天数 k = (v-m).days #确认相差的秒数 不会计算年月日相差 仅时分秒相差 k = (v-m).seconds #确认相差的秒数 计算年月日相差 k = (v-m).total_seconds() #MYSQL时区错误问题 shell >> mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql

 

最新回复(0)