将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];