如何检测设备的时间设置?

时间:2011-11-07 05:41:09

标签: iphone settings uilabel

我有一个应用程序,我已经制作了一个闹钟。在我的应用程序中,问题是当设备日期和时间设置发生变化时,警报标签的文本也会发生变化。例如,如果将时间设置设置为24小时,那么在我的标签文本中,当更改设置为12小时,然后在标签的文本中显示上午和下午时,不会显示上午和下午。如何检测日期和时间的设置以及如何在标签的文本上应用验证,无论设置是在上午和下午模式下显示还是在12小时设置中显示?

谢谢你的进步......

2 个答案:

答案 0 :(得分: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
}

答案 1 :(得分:-2)

只需放置此代码

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

而不是

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

然后

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

NSLog将分别以AM或PM打印当前时间12小时格式