python 的时间怎么对比

Python022

python 的时间怎么对比,第1张

在Python编程中,使用datetime模块计算两个时间的差:

1

2

3

4

5

6

7

8

>>>import datetime

>>>d1=datetime.datetime(2015,7,5)

>>>d2=datetime.datetime(2005,7,4)

>>>(d1-d2).seconds

//结果86400s

# 计算两个时间的间隔天数

# 注意:输入月份和天时,不能输入08,09等,会被识别为 8 进制而出错!(8进制是不超过07的)

# 解决办法:要把月份和天前面的0去掉。

# time模块实现, 也是自带的

# 字符串不好计算~但是时间戳是固定的呀...

# 计算结果中, 假定今天24日, 输入24, 输出0天, 输入25, 输出-1天

import time

def f(tm):

    stamp = time.mktime(time.strptime(tm, "%Y%m%d"))

    diff = int((time.time() - stamp) // 86400)

    if diff <= 180:

        return {tm: str(diff)}

    else:

        d = {}

        while diff > 180:

            d[tm] = 180

            stamp += 180 * 86400

            diff = int((time.time() - stamp) // 86400)

            # 注意这里time.gmtime()返回的是0时区日期, 需要处理时区问题

            tm = time.strftime("%Y%m%d", time.gmtime(stamp - time.timezone))

        else:

            d[tm] = str(diff)

            return d

if __name__ == '__main__':

    tm = '20160325'

    print(f(tm))

    tm = '20171015'

    print(f(tm))

# 结果输出, 注意: 字典是没有固定顺序的

'''

{'20160921': 180, '20170320': 180, '20170916': '38', '20160325': 180}

{'20171015': '9'}

'''

djaogo 时间判断表达

时间

1、gt:大于某个时间

now = datetime.datetime.now()

前一天

start = now – datetime.timedelta(hours=23, minutes=59, seconds=59)

a=yourobject.objects .filter(youdatetimcolumn__gt=start)

2、gte:大于等于某个时间:

a=yourobject.objects .filter(youdatetimcolumn__gte=start)

3、lt:小于

a=yourobject.objects .filter(youdatetimcolumn__lt=start)

4、lte:小于等于

a=yourobject.objects .filter(youdatetimcolumn__lte=start)

5、range:查询时间段

start_date = datetime.date(2005, 1, 1)

end_date = datetime.date(2005, 3, 31)

Entry.objects.filter(pub_date__range=(start_date, end_date))

6、year:查询某年

Entry.objects.filter(pub_date__year=2005)

7、month:查询某月

Entry.objects.filter(pub_date__month=12)

8、day:某天

Entry.objects.filter(pub_date__day=3)

9、week_day:星期几

Entry.objects.filter(pub_date__week_day=2)

10、获取今天的日期,日期格式为yyyy-MM-dd

from django.utils.timezone import now, timedelta

date = now().date() + timedelta(days=-1) #昨天

date = now().date() + timedelta(days=0) #今天

date = now().date() + timedelta(days=1) #明天