如何解决如何在python的时间戳中迭代数小时
我正在尝试遍历两个时间戳之间的小时数。例如:
a = 2018-01-19 12:35:00
b = 2018-01-19 18:50:00
for hour in range(a.hour,b.hour +1):
print(hour)
这将导致:12,13,14,15,16,17,18
以后我想使用“小时”变量,所以我需要它来计算有多少小时的差异,而不是小时本身。.
我想要的结果是:0,1,2,3,4,5,6
获取类似这样的时间戳时还有另一个问题:
c = 2018-01-16 17:59:00
d = 2018-01-17 00:14:00
因为以下时间的小时数:00:14:00
是0
。
在这种情况下,我想得到:0,6,7
我不知道该怎么做..任何人都可以帮忙吗?
解决方法
您想要的对象是“ timedelta”对象-它表示2个时间戳之间的持续时间。假设您想从日期对象开始,然后每隔一小时执行一次操作。不要试图自己弄清楚间隔逻辑,而要使用内置的东西。
>>> a = datetime.now()
>>> a
datetime.datetime(2020,8,17,6,33,25,529995)
>>> a + timedelta(hours=1)
datetime.datetime(2020,7,529995)
>>> a + timedelta(hours=2)
datetime.datetime(2020,529995)
,
尝试一下
from datetime import datetime
def date_range(x,y):
fmt = '%Y-%m-%d %H:%M:%S'
x,y = datetime.strptime(x,fmt),datetime.strptime(y,fmt)
duration = y.replace(minute=59) - x.replace(minute=0)
days,seconds = duration.days,duration.seconds
hours = days * 24 + seconds // 3600
return list(range(hours + 1))
a = '2018-01-19 12:35:00'
b = '2018-01-19 18:50:00'
c = '2018-01-16 17:59:00'
d = '2018-01-17 00:14:00'
print(date_range(a,b))
print(date_range(c,d))
输出:
[0,1,2,3,4,5,6]
[0,7]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。