iOS NSDate Comparison funciona de manera diferente cuando la hora de 24 horas en la configuración de la fecha cambia entre ON y OFF?

Equipo, estoy comparando la fecha que se forma a partir de la cadena usando NSDateFormatter con la fecha del sistema iOS. La siguiente declaración devuelve verdadero cuando la configuración de fecha y hora del sistema se establece con la hora de 24 horas activada, pero el mismo código devuelve falso cuando la hora de 24 horas está desactivada.

Código problemático:

if ([(NSDate*)[NSDate date] compare:currDate] == NSOrderedAscending) {
     // -- Code -- This is executed only when the 4-Hour Time ON
 }

Estoy confundido. La cadena con la que obtengo la fecha está en formato de 24 horas. ¿Es esto un problema? ¿O algo más?

Código de formato de fecha:

-(NSDate *)getDateFromString:(NSString *)dateString{
    NSDateFormatter* fmt = [[NSDateFormatter alloc] init];
    [fmt setDateFormat:@"dd MMM yyyy hh:mm:ss"];
    [fmt setTimeZone:[NSTimeZone systemTimeZone]];
    [fmt setFormatterBehavior:NSDateFormatterBehaviorDefault];  
    return [fmt dateFromString:dateString];
}

Respuestas a la pregunta(2)

Su respuesta a la pregunta