El problema es que ctime usa la hora local, por lo que termina en el desplazamiento.
Si desea GMT, debe usar asctime(gmtime(&time)) , que le dará una fecha/hora sin influencias de la hora local.
ctime es el equivalente de asctime(localtime(&time))