python Timedelta溢出

标签 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

最佳答案

你可以使用 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)

关于python Timedelta溢出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38514856/

相关文章:

integer-overflow - 为什么 left+(right-left)/2 不会溢出?

c++ - 在不同 CPU 上处理整数

Python 堆叠链表

python - 如何在 matplotlib 极坐标图中旋转 theta 刻度标签?

python - 如何获取模块中定义但未导入的所有类?

python - 我无法在 raspbian linux 上安装 python sabyenc

python - 列表 : How to set the dtype of items 的 Pandas 列

python - 尝试将 GPU 与 Tensorflow 一起使用时出错

python - 在YYYY-MM-DD HH :MM[:SS[. SSSSSS中转换日期时间]]

vba - 乘以整数并分配给 Long 时溢出