python Timedelta溢出

时间:2016-07-21 21:43:22

标签: python python-2.7 integer-overflow timedelta

我正在尝试返回timedelta,但是当time_value太大时,它会溢出并出错。我可以使用检查来查看time_value是否太大但我更喜欢处理错误并返回默认值的包装器。我已经包含了我现在正在做的代码。是否有一个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

1 个答案:

答案 0 :(得分:1)

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

然后您的代码变为

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