获取列表中的两个日期时间之间的所有时间
问题描述:
我想获得两个日期时间之间的所有时间。比如我有两个日期时间获取列表中的两个日期时间之间的所有时间
2016-10-15 12:15:57
和2016-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']
任何帮助将非常感激
答
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']
你可以像这个答案中使用'timedelta' - http://*.com/questions/6043079/python-get-whole-hour-valu es-between-2-datetime-objects?rq = 1 – pidge
我认为你的回答是错误的。不是吗?一天之间的差距不应该只有5秒。 –
将字符串转换为utc unix时间戳,将其放入范围为a,b,1的for循环中。然后将时间戳转换回可读时间表示。将它集成到一个数组中。 – ProgramFast