◐ Shell
clean mode source ↗

Message 147244 - Python tracker

Perhaps it's better to calculate utc-offset for each timestamp cause we never know what is correct timezone for given time.

That could be done in C:

localtime, utc_offset = time.localtime_ex(t)

Where localtime is the same as returned by localtime() and utc_offset is set to tm.tm_gmtoff.
If tm_gmtoff isn't available on the target platform time.timezone or time.altzone will be used depending on time.daylight.


Here is simple python version, that subtracts gmtime from localtime tuple:

import time

def calculate_utc_offset(t):
    """
    Returns localtime offset for given unix-time `t`
    """
    loco = time.localtime(t)
    utc = time.gmtime(t)
    odd = cmp(loco.tm_year, utc.tm_year) or cmp(loco.tm_yday, utc.tm_yday)
    return (1440 * odd +
            60 * (loco.tm_hour - utc.tm_hour) +
            loco.tm_min - utc.tm_min))