2011-05-23 101 views
1

我有一个“DateTimeArray”这个数组包含将字符串转换成NSDate的

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 

所有的价值都在串,我想这个字符串转换成NSDate的转换,只需要访问时间不日期
和那么这个时间值将被存储在阵列和这个新阵将用于绘制折线图

我希望有人知道这个问题

非常感谢你

回答

1

代码如下,

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]; 
} 
+0

@KingoofBliss ,非常感谢你 – Pooja 2011-05-23 10:29:32

+0

@pooja:欢迎你:) – KingofBliss 2011-05-23 10:36:15

+0

@KingofBliss,你能告诉我如何设置GMT + 1,因为它显示我在1小时前 – Pooja 2011-05-23 10:39:46

1

试试这个

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

我会使用以下格式:“dd.MM. yyyy HH:mm:ss“ – rckoenes 2011-05-23 09:54:35

+0

如果格式不匹配,你会从字符串中得到零,所以要小心 – KingofBliss 2011-05-23 10:04:51

0

继承人的一套完整的代码..希望它可以帮助..

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 ...

+0

如果格式不匹配字符串,你会从字符串中得到零,所以要小心 – KingofBliss 2011-05-23 10:04:15

1

最好和更清洁的方法:

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 

再到刚刚接触小时,而不是几天,你应该选择每个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]; 
0
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]; 
1
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]);