如何使用字符串格式为12:30 AM的日期选择器设置日期?

时间:2012-07-20 12:16:37

标签: iphone objective-c

Hello我想要的每个人都要在日期匹配器中将日期设置为字符串,如问题中给出的上述格式 我使用以下代码将date设置为datepicker

NSString *tmStr=[selectedDics objectForKey:@"Time"];
NSArray *timeStr=[tmStr componentsSeparatedByString:@" "];
NSString *fStr=[timeStr objectAtIndex:1];
NSArray *Time=[[timeStr objectAtIndex:0]componentsSeparatedByString:@":"];
NSInteger hour=[[Time objectAtIndex:0] intValue];

NSString *str=[NSString stringWithFormat:@"%i:%i",hour,[[Time objectAtIndex:1]intValue]];

NSString *a;
if ([fStr isEqualToString:@"PM"]) 
{
    a=@"PM";
    hour=hour+12;
}else
{
    a=@"AM";
    if (hour==12) {
        hour=0;
    }
}
NSCalendar *calender = [NSCalendar currentCalendar];
[calender setTimeZone:[NSTimeZone defaultTimeZone]];
unsigned currentFlag = NSDayCalendarUnit|NSMonthCalendarUnit|NSYearCalendarUnit|NSSecondCalendarUnit;
NSDateComponents *comps = [calender components:currentFlag fromDate:[NSDate date]];
comps.hour = hour;
comps.minute = [[Time objectAtIndex:1]intValue];
datePicker.date = [calender dateFromComponents:comps];

还有其他方法可以轻松设置吗?

1 个答案:

答案 0 :(得分:3)

 NSDateFormatter *formatter;
 formatter = [[NSDateFormatter alloc] init];
 [formatter setDateFormat:@"h:mm a"];

 NSDate *date=[formatter dateFromString:@"12:30 AM"]; 
 [datepicker setDate:date];