获取列表中的两个日期时间之间的所有时间

问题描述:

我想获得两个日期时间之间的所有时间。比如我有两个日期时间获取列表中的两个日期时间之间的所有时间

2016-10-15 12:15:572016-10-16 12:16:02

有没有找到所有像下面的时间的任何最简单的方法,

['2016-10-15 12:15:57','2016-10-15 12:15:58','2016-10-15 12:15:59','2016-10-15 12:16:00','2016-10-15 12:16:01','2016-10-15 12:16:02'] 

任何帮助将非常感激

+0

你可以像这个答案中使用'timedelta' - http://*.com/questions/6043079/python-get-whole-hour-valu es-between-2-datetime-objects?rq = 1 – pidge

+2

我认为你的回答是错误的。不是吗?一天之间的差距不应该只有5秒。 –

+0

将字符串转换为utc unix时间戳,将其放入范围为a,b,1的for循环中。然后将时间戳转换回可读时间表示。将它集成到一个数组中。 – ProgramFast

from datetime import date, datetime, timedelta 

def perdelta(start, end, delta): 
    curr = start 
    while curr <= end: 
     yield curr 
     curr += delta 

dtfmt = '%Y-%m-%d %H:%M:%S' 

a = '2016-10-15 12:15:57' 
b = '2016-10-15 12:16:02' 

start = datetime.strptime(a,dtfmt) 
end = datetime.strptime(b,dtfmt) 

stack=[] 
for result in perdelta(start , end, timedelta(seconds=1)): 
    stack.append(str(result)) 

print(stack) 

OUTPUT

[ '2016年10月15日12点15分57秒', '2016年10月15日12时15分58秒',“ 2016-10-15 12:15:59', '2016-10-15 12:16:00','2016-10-15 12:16:01','2016-10-15 12:16:02 ']

这应该有助于你:

import datetime 

fmt = '%Y-%m-%d %H:%M:%S' 

a = '2016-10-15 12:15:57' 
b = '2016-10-15 12:16:02' 

strp_a = datetime.datetime.strptime(a,fmt) 
strp_b = datetime.datetime.strptime(b,fmt) 

result = [] 

while strp_a <= strp_b: 
    result.append(str(strp_a)) 
    strp_a += datetime.timedelta(seconds=1) 



print(result) 

输出:

['2016-10-15 12:15:57', '2016-10-15 12:15:58', '2016-10-15 12:15:59', 
'2016-10-15 12:16:00', '2016-10-15 12:16:01', '2016-10-15 12:16:02']