Vorrei verificare se l'utente ha selezionato il formato 12 ore o 24 ore come preferenziale in OS X e iOS. Quindi vorrei rilevare se l'utente ha effettuato le seguenti operazioni:NSDateFormatter rileva il clock di 24 ore in OS X e iOS
- Sul Mac, la preferenza del sistema è in Data & tempo, utilizzare 24 ore Orologio
- Su iPhone, la preferenza è in impostazioni, generali, Data & ora, 24 ore tempo
al momento ho il seguente codice ma restituisce sempre il tempo come rappresentato dal formato a 12 ore, anche se la preferenza di sistema impostata dall'utente è per l'orologio delle 24 ore.
let timeFormatter = NSDateFormatter()
timeFormatter.locale = NSLocale.currentLocale()
timeFormatter.dateStyle = NSDateFormatterStyle.NoStyle
timeFormatter.timeStyle = NSDateFormatterStyle.ShortStyle
let ampmtext = timeFormatter.stringFromDate(NSDate())
println(ampmtext)
if ampmtext.rangeOfString("M") != nil {
println("12-hour clock")
} else {
println("24-hour clock")
}
mi piacerebbe trovare una soluzione scritta in Objective-C e Swift sia per Mac e iPhone in grado di rilevare se l'orologio dispositivo visualizza 24 ore o 12 ore di tempo.
Vedere [this] (http://stackoverflow.com/questions/6613110/what-is-the-best-way-to-deal-with-the-nsdateformatter-locale-feature). Sta affrontando una sorta di opposto del tuo problema, ma ti dà un po 'di background. (Anche se non so per caso, so di un modo sicuro per testare esplicitamente l'impostazione 12/24 nonostante tutte le possibili impostazioni locali, ecc.) –
@HotLicks Ho modificato la mia domanda. Il codice funziona ma l'errore è nel modo in cui gestisco le impostazioni sul Mac e su come sto usando il simulatore iPhone per iOS. – wigging
Quando guardavo il problema non riuscivo a trovare un modo per provocarlo sul simulatore dell'iPhone: dovevamo testare con veri telefoni live. (Non ero preoccupato per OSx.) –