def decode_datetime_asc(dt):
try:
- return asctime(localtime(float(dt)))
- except ValueError:
+ lt = localtime(float(dt))
+ Y = lt[0]
+ if Y > 9999:
+ raise ValueError
+ except (OSError, ValueError):
return datetime.max.ctime()
+ else:
+ return asctime(lt)
def decode_datetime(dt):
try:
- Y, m, d, H, M = localtime(float(dt))[0:5]
- except ValueError:
- return datetime.max.ctime()
- if Y > 9999:
- Y = 9999
+ Y, m, d, H, M = localtime(float(dt))[:5]
+ if Y > 9999:
+ raise ValueError
+ except (OSError, ValueError):
+ Y, m, d, H, M = datetime.max.timetuple()[:5]
return "%02d-%02d-%d %02d:%02d" % (m, d, Y, H, M)