Der iOS NSDate-Vergleich funktioniert anders, wenn die 24-Stunden-Zeit in den Datumseinstellungen zwischen EIN und AUS wechselt.

Team, ich vergleiche das Datum, das mit NSDateFormatter aus einem String gebildet wird, mit dem Datum des iOS-Systems. Die folgende Anweisung gibt "true" zurück, wenn die Einstellungen für die Systemdatumzeit auf "24-Stunden-Zeit EIN" gesetzt sind, aber der gleiche Code gibt "false" zurück, wenn die 24-Stunden-Zeit AUS ist.

Problematischer Code:

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

Ich bin verwirrt. Die Zeichenfolge, mit der ich das Datum erhalte, ist im 24-Stunden-Format. Ist das ein Problem? Oder sonst noch etwas?

Datumsformatierungscode:

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

Antworten auf die Frage(2)

Ihre Antwort auf die Frage