• Victor Stinner's avatar
    Issue #25155: Add _PyTime_AsTimevalTime_t() function · 1e2b6882
    Victor Stinner yazdı
    On Windows, the tv_sec field of the timeval structure has the type C long,
    whereas it has the type C time_t on all other platforms. A C long has a size of
    32 bits (signed inter, 1 bit for the sign, 31 bits for the value) which is not
    enough to store an Epoch timestamp after the year 2038.
    
    Add the _PyTime_AsTimevalTime_t() function written for datetime.datetime.now():
    convert a _PyTime_t timestamp to a (secs, us) tuple where secs type is time_t.
    It allows to support dates after the year 2038 on Windows.
    
    Enhance also _PyTime_AsTimeval_impl() to detect overflow on the number of
    seconds when rounding the number of microseconds.
    1e2b6882
pytime.h 6.65 KB