2011-05-23 4 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

+0

@pooja: вы приветствуете :) – KingofBliss

+0

@KingofBliss, не могли бы вы рассказать мне, как установить GMT + 1, поскольку он показывает мне за 1 час до времени – Pooja

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

+0

Если формат не соответствует, вы получите нуль из своей строки, поэтому будьте осторожны – KingofBliss

0

Heres полный набор кода .. Надеюсь, что это помогает ..

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

Happy iCoding ...

+0

, если формат не соответствует строке, вы получите нуль из своей строки, поэтому будьте осторожны – KingofBliss

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]); 
Смежные вопросы