Comparação NSDate do iOS funciona de forma diferente quando as configurações de Hora de 24 horas na data alternam entre ON e OFF?

Equipe, estou comparando a data que é formada a partir de string usando NSDateFormatter com a data do sistema iOS. A instrução abaixo retorna true quando as configurações de data e hora do sistema são definidas com 24 horas em ON, mas o mesmo código retorna false quando 24 horas em OFF.

Código Problemático:

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

Estou confuso. A string com a qual estou obtendo a data está no formato de 24 horas. Isso é um problema? Ou qualquer outra coisa?

Código de formatação de data:

-(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];
}

questionAnswers(2)

yourAnswerToTheQuestion