Sto utilizzando NSDateFormatter per impostare la data nell'app per iPhone e le date sono visualizzate correttamente. Tuttavia, sto trovando tutte le impostazioni locali (la mia app supporta fino a 12 lingue diverse) si attengono al formato della data che specifica tramite setDateFormat. Idealmente, voglio che il formato della data appaia in una forma naturale rispetto all'impostazione della regione per l'utente, invece di seguire il mio formato (che funziona bene per l'inglese ma potrebbe non essere naturale per altre impostazioni locali).Come rendere NSDateFormatter visualizzare la data specifica della locale?
seguito è il mio codice:
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateStyle:NSDateFormatterMediumStyle]; [dateFormatter setTimeStyle:NSDateFormatterShortStyle]; [dateFormatter setDateFormat:@"MMMM dd, yyyy kk:mm:ss"]; self.creationDate.text = [dateFormatter stringFromDate:creationTimeStamp];
Questa soluzione è migliore dell'utilizzo dell'API localizedStringFromDate perché la stringa restituita da -localizedStringFromDate neutralizzerà il fattore di fuso orario e talvolta, in alcune regioni, la data/l'ora saranno irrilevanti. Per rimuovere il componente del fuso orario, dobbiamo farlo in aggiunta: [dateFormatter setTimeZone: [NSTimeZone timeZoneForSecondsFromGMT: 0]]; –