Problemet är att ctime använder lokaltid, så det hamnar i offset.
Om du vill ha GMT bör du använda asctime(gmtime(&time)) , vilket ger dig ett datum/tid utan influenser från lokal tid.
ctime är motsvarigheten till asctime(localtime(&time))