is there an epoch time converter that can deal with millennia?
time.gmtime(1000 * 365 * 24 * 60 * 60)
throws
ValueError: timestamp out of range for platform time_t
is there an epoch time converter that can deal with millennia?
time.gmtime(1000 * 365 * 24 * 60 * 60)
throws
ValueError: timestamp out of range for platform time_t
No, because the *nix timestamp is not defined past 2038 due to the maximum value for a 32-bit time_t.
EDIT: To clarify, you can still count seconds since 1970, it just will no longer be a timestamp per se.
Yes, at least on Windows (using Windows 7 here). What platform are you using?
Python 2.6.2 (r262:71605, Apr 14 2009, 22:40:02) [MSC v.1500 32 bit (Intel)] on win32
>>> time.gmtime(1000*365*24*60*60)
time.struct_time(tm_year=2969, tm_mon=5, tm_mday=3, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=2, tm_yday=123, tm_isdst=0)
Also, even on Linux you should be able to do some processing of dates well beyond 2038 using the datetime module. The docs say MAXYEAR is 9999 for that module:
>>> dt = datetime.datetime.now().replace(year=1000+1971)
>>> dt
datetime.datetime(2971, 12, 29, 11, 43, 20, 727000)
>>> dt.timetuple()
time.struct_time(tm_year=2971, tm_mon=12, tm_mday=29, tm_hour=11, tm_min=41, tm_sec=16, tm_wday=6, tm_yday=363, tm_isdst=-1)
Of course, that last call probably won't work on Linux if the time.gmtime() call is failing, but since you haven't really said what you want to do with the date maybe this is sufficient for now.