2014-09-23 4 views
6

Dieses seltsame Problem erschien mit iOS 8 Release. Hier ist ein Beispielcode:iOS 8 Europa/Moskau Zeitzone Problem

NSDate * date = [NSDate dateWithTimeIntervalSince1970:1414785600]; 

dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"ru_RU"]]; 
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"Europe/Moscow"]]; 
[dateFormatter setDateStyle:NSDateFormatterFullStyle]; 

[dateFormatter setDateFormat:@"MM"]; 
NSString * month = [dateFormatter stringFromDate: date]; 

Datum ist 2014-11-01 00:00:00 MSK (oder 2014-10-31 20:00:00 +0000)

Lauf ios 7, Monatswert ist 11. Aber auf ios 8 ist 10. Irgendwelche Ideen, was falsch ist? Danke.

PS. Die Zeitzone Asien/Muskat jetzt prüfen (+4 wie MSK). Alles ist in Ordnung, Monat ist 11.

+0

Haben Sie überprüft, ob der Wert in verschiedenen Zeitzonen gleich ist? – marceloquinta

Antwort

3

[timezone secondsFromGMTForDate:date] gibt 14400 bei iOs7 und 10800 bei iOs8 für das angegebene Datum zurück. Es sollte die Änderungen widerspiegeln, die (wieder) von der russischen Regierung http://www.timeanddate.com/time/change/russia/moscow gemacht werden, die iOs7 noch nicht bewusst ist.

+0

Also ist es ein iOS 7 Problem und kein iOS 8 Problem? – gnasher729

+1

Ich glaube schon, normalerweise die alten iOs-Versionen erhalten kleinere Updates für solche Änderungen. –