将string转换为NSDate

我有一个“DateTimeArray”这个数组包含

DateTimeArray[index 0] = 20.05.2011 12:12:50 DateTimeArray[index 1]= 20.05.2011 12:13:20 DateTimeArray[index 2]= 20.05.2011 12:20:10 

所有的价值都在string,我想将此string转换成NSDate,只想访问时间不是date
然后这个时间值将被存储在数组中,这个新的数组将被用于绘制折线图

我希望有人知道这个问题

非常感谢你

代码如下,

 for(int index=0;index<[DateTimeArray count];index++) { NSDateFormatter *df = [[NSDateFormatter alloc] init]; [df setDateFormat:@"HH:mm:ss"]; NSString *timeString=[[[DateTimeArray objectAtIndex:index]componentsSeparatedByString:@" "]objectAtIndex:1]; NSDate *time=[df dateFromString:timeString]; [timeArray addObject:time]; [df release]; } 

尝试这个

 NSDateFormatter *df = [[NSDateFormatter alloc] init]; [df setDateFormat:@"HH:mm:ss"]; NSDate *formattedDate = [df dateFromString:[DateTimeArray objectAtIndex:requiredIndex]]; [df release]; 

最好和更干净的方法:

 NSDateFormatter *df = [[NSDateFormatter alloc] init]; [df setDateFormat:@"dd.MM.yyyy HH:mm:ss"]; for(int i=0; i < [DateTimeArray count]; ++i) { NSString *string = [DateTimeArray objectAtIndex:i]; NSDate *date = [df dateFromString:string]; [timeArray addObject:time]; } [df release]; // ALWAYS release unused objects 

然后只访问几个小时,而不是几天,您应该select每个NSDate*实例所需的组件:

 // Get the Gregorian calendar NSCalendar *cal = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; // Get the date NSDate* date = [timeArray objectAtIndex:my_index]; // Get the hours, minutes, seconds NSDateComponents* hour = [cal components:NSHourCalendarUnit fromDate:date]; NSDateComponents* minute = [cal components:NSMinuteCalendarUnit fromDate:date]; NSDateComponents* second = [cal components:NSSecondCalendarUnit fromDate:date]; 
  NSMutableArray *nsdateArray = [NSMutableArray arrayWithCapacity:[DateTimeArray count]]; NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; [dateFormat setDateFormat:@"dd.MM.yyyy HH:mm:ss"]; for(NSString *currentString in DateTimeArray){ NSDate *date = [dateFormat dateFromString:currentString]; [nsdateArray addObject:date]; } [dateFormat release]; NSLog(@"ArrayWithDate:%@",[nsdateArray description]); 

下面是一套完整的代码..希望它有助于..

 NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; [formatter setDateFormat:@"HH:mm:ss"]; int i=0;//start for{} loop NSString *currDate = [formatter dateFromString:[DateTimeArray objectAtIndex:i]]; [formatter release]; 

开心iCoding …

 NSDateFormatter *timeFormat = [[NSDateFormatter alloc] init]; [timeFormat setDateFormat:@"HH:mm:ss"] NSString *theTime = [timeFormat dateFromString:date]; or NSCalendar *calendar = [NSCalendar currentCalendar]; NSDateComponents *components = [calendar components:(kCFCalendarUnitHour | kCFCalendarUnitMinute) fromDate:date]; NSInteger hour = [components hour]; NSInteger minute = [components minute];