Domanda

Sto usando NSDateFormatter, il problema è con la sua coerenza. Se utilizzo kCFDateFormatterMediumStyle, viene fornito il formato come "26 nov 2009" nel simulatore ma sul dispositivo fornisce "26-Nov-2009".

Ora ho la domanda: questo NSFormatter è affidabile nel prossimo futuro o gli aggiornamenti da Apple possono cambiare di nuovo lo stile?

È stato utile?

Soluzione

NSDateFormatter formatta la data in base alle preferenze dell'utente, in base alle impostazioni internazionali sul dispositivo. Pertanto, non puoi mai aspettarti che questa stringa sia coerente a causa della quantità di modi diversi in cui le date vengono visualizzate in tutto il mondo.

Ho trovato il modo migliore per formattare una data come stringa (da usare per dare ai server web ecc.) è usare NSDateComponents e convertirli in stringhe.

Altri suggerimenti

Mentre l'altra risposta sopra menzionata è tecnicamente corretta, non ti dà la soluzione che stai cercando. Mentre NSDateFormatter utilizza per impostazione predefinita le impostazioni locali dell'utente (e, come tale, non fornirà risultati utili), è possibile richiedere una locale specifica per ottenere risultati coerenti:

NSDateFormatter *frm = [[NSDateFormatter alloc] init];
[frm setDateFormat:@"EEE MMM dd HH:mm:ss ZZZ yyyy"];

NSLocale *en_US = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
[frm setLocale:en_US];
[en_US release];
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top