2014-09-23 5 views
6

Questo strano problema è apparso con ios 8. Ecco il codice di esempio:Numero di fuso orario iOS 8 Europa/Mosca

ios
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]; 

Data è 2014-11-01 00:00:00 MSK (o 2014-10-31 20:00:00 +0000)

in corso 7, valore del mese è 11. Ma su iOS 8 è 10. Delle idee che cosa c'è che non va? Grazie.

PS. Verifica il fuso orario Asia/Muscat adesso (+4 come MSK). Tutto è OK, il mese è 11.

+0

Hai controllato se il valore è lo stesso in diversi fusi orari? – marceloquinta

risposta

3

[timezone secondsFromGMTForDate:date] restituisce 14400 a iOs7 e 10800 a iOs8 per la data specificata. Dovrebbe riflettere le modifiche apportate (di nuovo) dal governo russo http://www.timeanddate.com/time/change/russia/moscow di cui iOs7 non è a conoscenza.

+0

Quindi è un problema con iOS 7 e non un problema con iOS 8? – gnasher729

+1

Credo di sì, di solito le vecchie versioni di iOs ricevono aggiornamenti minori per tali cambiamenti. –