मैंने सोचा कि मैंने हाल ही में कुछ जवाब देने को देखा है लेकिन अब मुझे यह नहीं मिल रहा है। यह कोड यह निर्धारित करने के लिए है कि सेटिंग्स 24 घंटों के समय के प्रदर्शन के लिए है या नहीं। यह अमेरिका में मेरे लिए काम करता है, लेकिन मुझे नहीं पता कि यह सभी इलाकों में काम करेगा या नहीं। क्या यह पर्याप्त है या इसके लिए वर्तमान सेटिंग जानने का एक बेहतर तरीका है?मैं कैसे निर्धारित कर सकता हूं कि आईफोन 12 घंटे या 24 घंटे के समय के लिए सेट है या नहीं?
+(BOOL) use24HourClock
{
BOOL using24HourClock = NO;
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setLocale: [NSLocale currentLocale]];
[dateFormatter setDateStyle:kCFDateFormatterNoStyle];
[dateFormatter setTimeStyle:kCFDateFormatterShortStyle];
// get date/time (1Jan2001 0000UTC)
NSDate* midnight = [[NSDate alloc] initWithTimeIntervalSinceReferenceDate:0];
NSString* dateString = [dateFormatter stringFromDate: midnight];
// dateString will either be "15:00" or "16:00" (depending on DST) or
// it will be "4:00 PM" or "3:00 PM" (depending on DST)
using24HourClock = ([dateString length] == 5);
[midnight release];
[dateFormatter release];
return using24HourClock;
}
अच्छा 3-लाइनर। मैं सोच रहा हूं, "ए" के लिए वास्तव में क्या खड़ा है?क्या यह संभव है कि कुछ गुप्त सेटिंग समय-चक्र प्रतीक को "एएम" में बदल सके? क्या रेंज लाइन को में बदल दिया जाना चाहिए NSRange includeA = [formatStringForHours rangeOfString: @ "a" विकल्प: NSCaseInsensitiveSearch]; '? – Wienke
@Wienke "ए" एएम/पीएम डिजाइनर के लिए आईसीयू प्रतीक है। यह कभी भी "ए" नहीं हो सकता है, क्योंकि आईसीयू "ए" का उपयोग कुछ अलग करने के लिए करता है (दिन में मिलीसेकंड)। –
+1, मुझे लगता है कि एक ऐसे चरित्र के लिए खोज करने में अधिक आरामदायक तरीका है जिसमें परिभाषित निश्चित अर्थ है और लोकेल के आधार पर नहीं बदलेगा। – DarkDust