2016-11-26 5 views
0

私は2つのdatetimeの間にすべての時間を取得したい。たとえば、私は2つの日時リスト内の2つのdatetimeの間のすべての時間を取得

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://stackoverflow.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

答えて

2
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分五十七秒'、 '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

をいただければ幸いですあなた:

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'] 
関連する問題