我有一系列datetime.time数据,我想在其上应用模运算,将所有数据转换为某些间隔。
例如,使用5分钟的时间间隔,datetime.time(11, 38, 27, 785327)
将转换为datetime.time(11, 35, 0, 0)
我怎样才能完成这种舍入?
答案 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]