在Python中获取日期时间范围之间的小时数 [英] Getting number of Hours between a Date-Time Range in Python

查看:547
本文介绍了在Python中获取日期时间范围之间的小时数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

因此,我尝试按如下所示在python中打印开始日期和结束日期之间的时间间隔的总小时数:

So I'm trying to print the total hours in intervals between a start date and an end date in python as follows:

@app.route('/test/')
def test():

date_format = "%Y-%m-%d %H:%M:%S"
start_date_time = datetime.strptime("2018-10-16 07:00:00", date_format)
end_date_time = datetime.strptime("2018-10-18 22:00:00", date_format)

def daterange(start_date_time, end_date_time):
    for n in range(int ((end_date_time - start_date_time).days)):
        yield start_date_time + timedelta(n)

for single_date in daterange(start_date_time, end_date_time):
    def get_delta(start_date_time, end_date_time):
        delta = end_date_time - start_date_time
        return delta

# Split time in hours
delta = get_delta(start_date_time,end_date_time)
for i in range(delta.days * 24 + 1): # THIS IS ONLY CALCULATING 24HRS FROM TIME GIVEN START TIME NOT TILL THE SELECTED END TIME SO I'M ONLY GETTING AN EXACT 24 HOUR RANGE
    currtime = start_date_time + timedelta(hours=i)

    print (currtime)
return ("done")

通过此操作,我只是设法从所选日期开始获得前24小时,但我希望继续计数并获得所有时间直到选定的结束日期。

By This i'm only managing to get the first 24 Hours from the selected date, but I wish to keep on counting and get all hours till the selected end date.

推荐答案

您可能想得太多。

from datetime import datetime, timedelta

date_format = "%Y-%m-%d %H:%M:%S"
start_date_time = datetime.strptime("2018-10-16 07:00:00", date_format)
end_date_time = datetime.strptime("2018-10-18 22:00:00", date_format)

def get_delta(l, r):
    return abs(int((l-r).total_seconds())) / 3600

for h in range(int(get_delta(start_date_time, end_date_time))):
    print((start_date_time + timedelta(0, h*3600)).strftime(date_format))

这篇关于在Python中获取日期时间范围之间的小时数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆