如何在python datetime.time上应用模运算

时间:2018-02-11 16:46:54

标签: python datetime

我有一系列datetime.time数据,我想在其上应用模运算,将所有数据转换为某些间隔。

例如,使用5分钟的时间间隔,datetime.time(11, 38, 27, 785327)将转换为datetime.time(11, 35, 0, 0)

我怎样才能完成这种舍入?

2 个答案:

答案 0 :(得分:1)

input_time = datetime.time(11, 38, 27, 785327)
mod_time = datetime.time(input_time.hour, input_time.minute//5*5)

答案 1 :(得分:0)

遇到这个优秀的解决方案

https://gist.github.com/treyhunner/6218526

import datetime as dt


class datetime(dt.datetime):
    def __divmod__(self, delta):
        seconds = int((self - dt.datetime.min).total_seconds())
        remainder = dt.timedelta(
            seconds=seconds % delta.total_seconds(),
            microseconds=self.microsecond,
        )
        quotient = self - remainder
        return quotient, remainder

    def __floordiv__(self, delta):
        return divmod(self, delta)[0]

    def __mod__(self, delta):
        return divmod(self, delta)[1]