Ceil a datetime to next quarter of an hour

后端 未结 6 1435
花落未央
花落未央 2020-12-03 07:38

Let\'s imagine this datetime

>>> import datetime
>>> dt = datetime.datetime(2012, 10, 25, 17, 32, 16)

I\'d l

6条回答
  •  -上瘾入骨i
    2020-12-03 08:21

    You just need to calculate correct minutes and add them in datetime object after setting minutes, seconds to zero

    import datetime
    
    def quarter_datetime(dt):
        minute = (dt.minute//15+1)*15
        return dt.replace(minute=0, second=0)+datetime.timedelta(minutes=minute)
    
    for minute in [12, 22, 35, 52]:
        print quarter_datetime(datetime.datetime(2012, 10, 25, 17, minute, 16))
    

    It works for all cases:

    2012-10-25 17:15:00
    2012-10-25 17:30:00
    2012-10-25 17:45:00
    2012-10-25 18:00:00
    

提交回复
热议问题