2

可以说我有一段时间,例如 10 分钟。我定义了开始时间和结束时间。

例如,开始时间是上午 10 点,结束时间是下午 2 点。

我需要的时间间隔

10-10.10 , 10.10 - 10.20 , .. , 10.50-11 etc., 

存储在数据库中。

这是我的想法。

from datetime import datetime
time1 = '10:00'
time2 = '10.10' 
format = '%H:%M'
obj1 = datetime.strptime(time1, format) - datetime.strptime(time2, format)

这对于两个已知的间隔是可以的。两个未知的时间间隔,然后将它们存储在数据库中呢?

我该如何解决这个问题?谢谢。

4

1 回答 1

2

只需在数据库中存储持续时间、开始和结束时间。您总是可以稍后生成时间间隔:

def time_range(start, end, duration):
    dt = start
    while dt < end: #note: `end` is not included in the range
        yield dt
        dt += duration

例子

from datetime import datetime, timedelta

# dummy data
duration = timedelta(minutes=10)
start = datetime.utcnow()
end = start + timedelta(hours=16)

# use list instead of tee(), islice() for simplicity 
lst = [dt.strftime('%H:%M') for dt in time_range(start, end, duration)] 
for interval in zip(lst, lst[1:]):
    print "%s-%s," % interval,
print
于 2012-06-29T17:11:05.840 回答