Frage

Ich mag wirklich nur wissen, ob der Benutzer das iPhone bis 12 Stunden-Modus für die Zeitanzeige eingestellt hat.

Die NSLocale Klasse schien (in vagen unspezifische Begriffen ohne Beispiele oder scheinbar nützliche Methoden) zu beschreiben, was ich war nach.

So habe ich einige NSLocale Objekte erstellt wie folgt:

NSLocale *systemLocaleApparently = [NSLocale systemLocale];
NSLocale *currentLocaleWithLotsOfGoodies = [NSLocale autoupdatingCurrentLocale];

Wenn ich diese Objekte mit dem Debugger oder NSLog() inspizieren, kann das Beste, was ich bekommen, ist etwas in dieser Richtung:

<CFLocale 0x1278e0 [0x382084f8]>{type = system, identifier = ''} 

Die aktuelle locale hat einen ID-String drin, aber sonst nichts.

Aus der Dokumentation kann ich Werte aus der Lokalisierungs-Lookup, und eine davon ist ein NSCalendar Objekt. So bekomme ich das zurück und haben einen Blick auf sie, und es sagt mir, es ist „gregorianischen“.

All das ist offenbar von Nutzen jemand ... aber was würde ich wirklich gerne ein schönes großes Wörterbuch der Attribute all aktuellen Systemeigenschaften zeigen, vor allem so, dass mein NSDateFormatters nicht halte Sprengung, wenn ein Benutzer wählt 12 Stunden-Format, obwohl ich die Formatierer gezwungen en_US_POSIX locale und ein festes setDate Format zu verwenden.

(Ich bin sicher, NSCalendarDate nie benutzt, diese Probleme zu haben ...)

Hoffentlich ich etwas offensichtlich fehle (und wahrscheinlich peinlich) offensichtlich, aber vielleicht jemand Art es mit mir teilen würde. Bitte:)

War es hilfreich?

Lösung

Hier ist eine Möglichkeit zu sagen, wenn der Benutzer seines Zeitformat auf ein 12- oder 24-Stunden-Format eingestellt hat:

NSDateFormatter* formatter = [[[NSDateFormatter alloc] init] autorelease];
[formatter setTimeStyle:NSDateFormatterMediumStyle];
// Look for H (24-hour format) vs. h (12-hour format) in the date format.
NSString* dateFormat = [formatter dateFormat];
BOOL using24HourClock = [dateFormat rangeOfString:@"h"].location == NSNotFound;
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top