我们如何以12小时格式获取日期

我想如果用户选择24小时从我的字符串设置他们得到12小时格式的时间。 我正在使用此代码。 它没有显示适当的时间。

timePicker.datePickerMode=UIDatePickerModeTime; [timePicker setDate:[NSDate date]]; [timePicker addTarget:self action:@selector(updateTextFieldd:) forControlEvents:UIControlEventValueChanged]; NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; [dateFormat setDateFormat:@"h:mm:a"]; theTime = [dateFormat stringFromDate:timePicker.date]; NSLog(@"%@",theTime); // NSDateFormatter *DateFormatters=[[NSDateFormatter alloc] init]; // [DateFormatters setDateFormat:@"a"]; if (is24h ==YES) { NSArray *seprates=[theTime componentsSeparatedByString:@":"]; NSString *min = [seprates objectAtIndex:1]; NSLog(@"%@",min); NSString *hour=[seprates objectAtIndex:0]; int hours=[hour intValue]; NSLog(@"%d",hours); if (hours==12 &&[min isEqualToString:@"00"]) { } else { if (hours>=12) { hours=hours-12; period=@"PM"; } else { if (hours==12) { hours=hours-11; period=@"PM"; } else if (hours>12) { hours=hours-12; period=@"PM"; } else { period=@"AM"; } } } if (hours ==0) { theTime=[NSString stringWithFormat:@"00:%@",min]; } else { theTime=[NSString stringWithFormat:@"%d:%@",hours,min]; } 

如果要强制使用AM / PM以12小时格式显示日期,请将语言环境设置为en_US。

  NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"hh:mm a"]; dateFormatter.locale = [NSLocale localeWithLocaleIdentifier:@"en_US"]; NSString *theTime = [dateFormatter stringFromDate: [NSDate date]]; NSLog(@"%@",theTime); 
 NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; [formatter setDateFormat:@"hh:mm a"]; 

使用此格式化程序设置完整日期。 我刚刚给出了提示。

尝试这个

  NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; dateFormatter.dateFormat = @"HH:mm"; NSDate *date = [dateFormatter dateFromString:@"23:50"];//suppose take time 23:50 dateFormatter.dateFormat = @"hh:mm a"; NSString *DateString = [dateFormatter stringFromDate:date];