Chciałbym sprawdzić, czy użytkownik wybrał 12-godzinny lub 24-godzinny zegar jako ich preferencje w OS X i iOS. Więc chciałbym, aby wykryć, czy użytkownik wykonał następujące czynności:NSDateFormatter wykrywa 24-godzinny zegar w OS X i iOS
- Na Mac, Preferencje systemu jest w Data & razem należy wybrać 24-godzinny
- na iPhone, preferencja jest w Ustawienia, Ogólne, data & czas, czas 24-godzinny
obecnie mam następujący kod, ale zawsze zwraca czas jako reprezentowany przez zegar 12-godzinny, nawet jeśli preferencji system ustanowiony przez użytkownika jest za 24-godzinny zegar.
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")
}
chciałbym znaleźć rozwiązanie napisane w Objective-C i Swift zarówno dla Mac i iPhone, które mogą wykryć, czy urządzenie wyświetla zegar 24-godzinny lub 12-godzinny.
Zobacz [this] (http://stackoverflow.com/questions/6613110/what-is-the-best-way-to-deal-z-nadatnymformatowaniem-zapisaniem-określonym). Jest to rozwiązanie przeciwne do twojego problemu, ale daje ci pewne podstawy. (Chociaż nie wiem od razu, jak można w sposób pewny przetestować ustawienie 12/24 pomimo wszystkich możliwych ustawień lokalnych itp.) –
@HotLicks Edytowałem moje pytanie. Kod działa, ale błąd dotyczy sposobu posługiwania się ustawieniami na komputerze Mac i tego, jak korzystam z symulatora iPhone'a na iOS. – wigging
Kiedy patrzyłem na problem, nie mogłem wymyślić sposobu na sprowokowanie go na symulatorze iPhone'a - musieliśmy przetestować prawdziwe telefony na żywo. (Nie martwił się o OSx.) –