2011-11-07 54 views
2

我有一個應用程序,我已經制作了一個鬧鐘。在我的應用程序問題是,當設備的日期和時間設置改變,然後警報標籤的文本也發生了變化。例如,如果時間設置設置爲24小時,則在標籤的文本中,不會在上次顯示上午和下午,而將設置更改爲12小時時,則會在標籤的文本中顯示上午和下午。如何檢測什麼是日期和時間的設置,以及如何在標籤的文本上應用驗證,無論設置始終在am和pm模式下顯示還是在12小時設置中顯示?如何檢測設備的時間設置?

感謝在進步......

回答

0
Use can use this code: 
NSDate *today = [NSDate date]; 
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
    // display in 12HR/24HR (i.e. 11:25PM or 23:25) format according to User Settings 

    [dateFormatter setDateFormat:@"HH:mm"]; 
    NSString *currentTime = [dateFormatter stringFromDate:today]; 
    NSLog(@"%@",currentTime); 
    [dateFormatter release]; 
Hear currentTime contains always 24 hour time format. 

int hour = [[[currentTime componentsSeparatedByString:@":"] objectAtIndex:0] intValue]; 
    if(hour > 12){ 
//show PM 
}else{ 
//Show AM 
} 
-2

只是把這個代碼

[dateFormatter setDateFormat:@"hh:mm a"]; 

[dateFormatter setDateFormat:@"HH:mm"]; 

然後

NSString *currentTime = [dateFormatter stringFromDate:today]; 
NSLog(@"%@",currentTime); 
代替

NSLog將分別用AM或PM打印當前時間12小時格式