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