2016-07-21 4 views
1

timedelta를 반환하려고하는데 time_value가 너무 크면 오버플로되어 오류가 발생합니다. 검사를 사용하여 time_value가 너무 큰지 확인할 수 있지만 오류를 처리하고 기본값을 반환하는 래퍼를 선호합니다. 나는 지금 내가하고있는 것에 대한 코드를 포함시켰다. 이 작업을 수행 할 timedelta 또는 datetime 버전이 있습니까?python Timedelta overflow

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 

답변

0

당신은 datetime.timedelta.mindatetime.timedelta.max를 사용할 수 있습니다. 그런 다음 코드는

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

0에 대해이 두 대칭이되지 않습니다