python-3.x - 从整数或字符串进行简单的日期时间转换
问题描述
有没有一种简单的方法可以将开始和结束时间输入转换为均匀分开的时间列表?输入可以是字符串或整数,格式为 1000、1000 或 2400 小时格式的“10:00”。我已经设法以一种看起来凌乱的方式完成了这项工作,是否有更紧密更有效的方式来创建这个列表?您会注意到,我首先创建了一个数组,然后调用了 .tolist() 以使时间转换迭代更容易。问题是需要将 1030 或 1015 的输入转换为 1050 或 1025 以创建正确的间距,但是如果有办法我可以调用 datetime.timedelta 或其他东西并干净地制作数组?
start="1000"
end="1600"
total_minutes=(int(end[:2])*60)+int(end[2:])-(int(start[:2])*60)-
int(start[2:])
dog=list(range(0,int(total_minutes),25))
walk=dog_df["Walk Length"][dog_df.index[dog_df["Name"]==self.name][0]]
if walk=='half':
self.dogarr=np.array([(x-25,x,x+25,x+50) for x in dog])
elif walk=='full':
self.dogarr=np.array([(x-25,x,x+25,x+50,x+75,x+100) for x in dog])
else:
self.dogarr=np.array([(x,x+25,x+50) for x in dog])
if int(start[2])!=0:
start=start[:2]+str(int(int(start[2:])*1.667))
self.dogarr+=(int(start))
self.dogarr=self.dogarr.tolist()
z=0
while z<len(self.dogarr):
for timespot in self.dogarr[z].copy():
self.dogarr[z][self.dogarr[z].index(timespot)]=time.strftime('%H%M', time.gmtime(self.dogarr[z][self.dogarr[z].index(timespot)]*36))
z+=1
self.dogarr=np.array(self.dogarr)```
array([['1115', '1130', '1145', '1200'],
['1130', '1145', '1200', '1215'],
['1145', '1200', '1215', '1230'],
['1200', '1215', '1230', '1245'],
['1215', '1230', '1245', '1300']], dtype='<U4')
解决方案
我相信您可以从任意数量的现有问题中找出解析时间。您问题的症结似乎是如何在一个范围内创建均匀分开的时间。这是一个简单的方法:
start = datetime.datetime(2018,12,20,10) # or use strptime etc.
end = datetime.datetime(2018,12,24,18)
count = 10
interval = (end - start) / count
dt = start
while dt <= end:
print(dt)
dt += interval
输出是:
2018-12-20 10:00:00
2018-12-20 20:24:00
2018-12-21 06:48:00
2018-12-21 17:12:00
2018-12-22 03:36:00
2018-12-22 14:00:00
2018-12-23 00:24:00
2018-12-23 10:48:00
2018-12-23 21:12:00
2018-12-24 07:36:00
2018-12-24 18:00:00
推荐阅读
- mips - 如果目标地址 j 跳转到的是立即数,会发生什么?
- wordpress - WordPress禁用产品列表上的悬停动画
- javascript - 如何更改数组中特定元素的颜色
- ag-grid - Aggrid 添加按钮应用和重置到所有过滤器工具面板
- ruby-on-rails - 红色 Rails 屏幕而不是闪烁消息:RailsAdmin::MainController#dashboard 中的 CanCan::AccessDenied
- node.js - 我对nodejs有问题我不接受数据,错误是无法读取未定义的属性“总计”
- c++ - MinGW:构建 C++ 程序时出现内部错误
- python-3.x - 如何在 Windows 上将 miniupnpc 安装为 python 模块
- sql - 查找多次出现的 XML 标记
- python - 为什么 Python str.len() 在我的 Pandas 对象中看到某个单元格为 6889,但 SQL SERVER len 和 NOTEPAD++ 显示为 8002?