time_t time_utc;
    struct tm tm_local;
    // Get the UTC time
    time(&time_utc);
    // Get the local time
    // Use localtime_r for threads safe
    localtime_r(&time_utc, &tm_local);
    time_t time_local;
    struct tm tm_gmt;
    // Change tm to time_t 
    time_local = mktime(&tm_local);
    // Change it to GMT tm
    gmtime_r(&time_utc, &tm_gmt);
int time_zone = tm_local.tm_hour - tm_gmt.tm_hour;
    if (time_zone < -12) {
        time_zone += 24; 
    } else if (time_zone > 12) {
        time_zone -= 24;
    }
注意必须联网,否则无效