python Timedelta 溢出

python Timedelta overflow

我正在尝试 return 一个时间增量,但是当 time_value 太大时它会溢出并给出错误。我可以使用检查来查看 time_value 是否太大,但我更喜欢处理错误的包装器并且 return 是默认值。我已经包含了我现在正在做的事情的代码。是否有可以为我执行此操作的 timedelta 或 datetime 版本?

def time_format(time_value):
            try:
                if time_value is None:
                    return 0
                elif time_value > 0:
                    return (timedelta(seconds=-time_value))
            except OverflowError:
                return 0

您可以使用 datetime.timedelta.min and datetime.timedelta.max。请注意,这两个关于 0 不对称。

那么你的代码就变成了

time_offset = 0
if timedelta.min.total_seconds() <= -time_value <= timedelta.max.total_seconds():
    time_offset = timedelta(seconds=-time_value)