Разделите строку (как дату), чтобы получить определенную часть строки (как месяц) - PullRequest
0 голосов
/ 09 ноября 2011

Я получаю некоторые данные с веб-сервера. В этих данных есть дата (т.е. 11-07-1978). Я хотел бы получить месяц как целое число (int month = 7).

Я попытался создать NSDate из String и получить месяц как компонент с NSDateComponents. Однако я получаю только значение 1.

Вот фрагмент моего кода:

 NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
        dateFormatter.dateFormat = @"yyyy-MM-dd";
        NSDate *dateFromString = [dateFormatter dateFromString:[[NSUserDefaults standardUserDefaults] objectForKey:@"result_expdate"]];
    NSDateComponents *components = [[NSCalendar currentCalendar] components:NSWeekCalendarUnit | NSMonthCalendarUnit | NSYearCalendarUnit fromDate:dateFromString];
        int day = [components day];    
        int month = [components month];
        int year = [components year];

NSLog(@"month = %d", month);

Как я могу получить месяц как целое число?

1 Ответ

1 голос
/ 09 ноября 2011

Вот быстрый и грязный способ сделать это- это напечатано от руки, поэтому могут быть опечатки ...

//chop up the string by "-"
NSString * dateString = @"11-07-2011";
NSArray * tempArray = [dateString componentsSeparatedByString:@"-"];

// set string to month
NSString * monthString = [[tempArray objectAtIndex:1]description];

//remove 0's from date if any
monthString = [monthString stringByReplacingOccurrencesOfString:@"0" withString:@""];

//change string to int
int month = [[NSString stringWithFormat:@"%@",monthString] intValue];
...