iOS NSDateFormatter benötigt NSLocale, auch wenn es UTC ist

Ich habe Zweifel, dass ich nicht verstehen kann, warum es so ist und appelliere an die Götter dieser Seite:)

Ich habe ein Datum wie dieses:

"1982-01-01T00:00:00Z" 

Da ich alles anzeige, was der Server sendet (ich weiß, Kundenanforderung, keine gute Praxis ...), zwinge ich das Gerät, diese TimeZone mit der folgenden Methode zu haben, die ohne Fehlerüberprüfung vereinfacht, nicht optimiert und alle diese Art von Dingen:

+ (NSString *) yearStringFromDate: (NSDate *) date
{
    NSDateFormatter *formatter = [NSDateFormatter new];
    [formatter setDateFormat:@"YYYY"];
    [formatter setTimeZone:[self timezoneForSIHF]];

    return [formatter stringFromDate:date];    
}

Dies sollte UTC sein, ABER wenn ich das Gebietsschema, das ich erhalte, nicht einstelle, und NUR manchmal das falsche Jahr. Wenn ich dies addiere, bekomme ich das richtige Jahr für alle Fälle:

[formatter setLocale:[NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"]];

Für weitere Informationen teste ich in einem realen Gerät und Simulator mit verschiedenen Sprachen (en, de, es).

Warum ist dasWarum wirkt sich das Gebietsschema auf das Datum aus, obwohl die Zeitzone korrekt ist?Warum arbeitet man manchmal mit ein paar Daten und manchmal nicht? Beispiel: 1982 kehrt zurück, ohne das Gebietsschema festzulegen, 1981, und wenn ich es auf 1982 festgelegt habe. Dies ist bei 1980 nicht der Fall. In beiden Fällen wird 1980 (oder 1987 oder ...) zurückgegeben.

Vielen Dank im Voraus für alle Ihre Antworten: D Cheers!

Antworten auf die Frage(4)

Ihre Antwort auf die Frage