我以爲我最近看到了一些回答這個問題的東西,但現在我找不到它了。這裏是我現在使用的代碼來確定設置是否用於24小時時間顯示。它在美國適用於我,但我不知道它是否適用於所有地區。這是足夠的還是有更好的方法來找出當前的設置?如何確定iPhone是否設置爲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班輪。我想知道,「a」究竟代表什麼?是否有可能一些神祕的設置可以將時間週期符號更改爲「AM」?如果範圍行改爲' NSRange containsA = [formatStringForHours rangeOfString:@「a」options:NSCaseInsensitiveSearch];'? – Wienke
@Wienke「a」是AM/PM代號的ICU符號。它永遠不可能是「A」,因爲ICU使用「A」表示完全不同的事物(當天的毫秒數)。 –
+1,我覺得更舒服的搜索一個具有定義的固定含義的角色,並且不會根據語言環境而改變。 – DarkDust