Generating 15 minute time interval array in python

前端 未结 6 1568
悲&欢浪女
悲&欢浪女 2020-12-08 10:15

I am trying to generate time interval array. for example:

time_array = [\"2016-09-02T17:30:00Z\", \"2016-09-02T17:45:00Z\", 
              \"2016-09-02T18:00         


        
6条回答
  •  南方客
    南方客 (楼主)
    2020-12-08 11:18

    Here is an example using an arbitrary date time

    from datetime import datetime
    
    start = datetime(1900,1,1,0,0,0)
    end = datetime(1900,1,2,0,0,0)
    

    Now you need to get the timedelta (the difference between two dates or times.) between the start and end

    seconds = (end - start).total_seconds()
    

    Define the 15 minutes interval

    from datetime import timedelta
    
    step = timedelta(minutes=15)
    

    Iterate over the range of seconds, with step of time delta of 15 minutes (900 seconds) and sum it to start.

    array = []
    for i in range(0, int(seconds), int(step.total_seconds())):
        array.append(start + timedelta(seconds=i))
    
    print array
    [datetime.datetime(1900, 1, 1, 0, 0),
    datetime.datetime(1900, 1, 1, 0, 15),
    datetime.datetime(1900, 1, 1, 0, 30),
    datetime.datetime(1900, 1, 1, 0, 45),
    datetime.datetime(1900, 1, 1, 1, 0),
    ...
    

    At the end you can format the datetime objects to str representation.

    array = [i.strftime('%Y-%m-%d %H:%M%:%S') for i in array]
    
    print array
    ['1900-01-01 00:00:00',
     '1900-01-01 00:15:00',
     '1900-01-01 00:30:00',
     '1900-01-01 00:45:00',
     '1900-01-01 01:00:00',
    ...
    

    You can format datetime object at first iteration. But it may hurt your eyes

    array.append((start + timedelta(seconds=i)).strftime('%Y-%m-%d %H:%M%:%S'))
    

提交回复
热议问题