Sono bloccato per ora. Ho usato felicemente NSDateFormatter senza problemi, ma oggi ho notato che una delle mie app mi sta dando risultati pazzeschi su un dispositivo iPhone 6 plus con iOS 8.1.3 - mentre sembra che vada bene su altri dispositivi/simulatore. Guardando in esso v'è di questo codice:NSDateFormatter "HH" restituisce am/pm su dispositivo iOS 8
NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]];
[dateFormatter setDateFormat:@"HH"];
NSInteger hour= [[dateFormatter stringFromDate:datetime] integerValue];
Questo risultati (sul dispositivo) per 0-12 ore di notazione, perché per una ragione che è al di là di me, se stampo [dateFormatter stringFromDate: datetime] a quel punto Ottengo "4 pm"!
Cosa mi manca?
cosa succede se si rimuove [dateFormatter setTimeZone: [NSTimeZone timeZoneWithAbbreviation: @ "UTC"]]; e provato a ottenere il valore dell'ora? –
Ok, ho studiato di più. Quella linea non lo influenza. Il problema è quando hai selezionato una regione come il Regno Unito o la Francia che per impostazione predefinita è il formato 24 ore ma disabiliti "24 ore al giorno" nelle impostazioni e quindi non imposta le impostazioni internazionali per dataFormatter. Semplice, eh? Scegli Regno Unito, disabilita l'intervallo di 24 ore, interruzioni "HH". Bello. – Ecuador
Hai ragione, è un problema noto che non avevo trovato nella mia ricerca. Apple non vuole ripararlo neanche ... – Ecuador