Het probleem is dat ctime gebruikt lokale tijd, dus dat komt in de offset terecht.
Als u GMT wilt, moet u asctime(gmtime(&time)) gebruiken , die je een datum/tijd geeft zonder lokale tijd invloeden.
ctime is het equivalent van asctime(localtime(&time))