Iphone 将字符串(作为日期)除以以获取字符串的特定部分(作为月份)

Iphone 将字符串(作为日期)除以以获取字符串的特定部分(作为月份),iphone,string,date,components,nsdate,Iphone,String,Date,Components,Nsdate,我正在从网络服务器获取一些数据。在该数据中有一个日期(即11-07-1978)。我希望得到一个整数形式的月份,比如(int month=7) 我尝试从字符串中创建一个NSDate,并使用NSDateComponents将月份作为一个组件。但是我只得到值1 以下是我的代码片段: NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease]; dateFormatter.dateForma

我正在从网络服务器获取一些数据。在该数据中有一个日期(即11-07-1978)。我希望得到一个整数形式的月份,比如(int month=7)

我尝试从字符串中创建一个NSDate,并使用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);

如何将月份作为整数计算?

这里有一种快速而肮脏的方法- 这是手写的,所以可能有打字错误

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

您的日期格式与代码之间不匹配-这是打字错误还是实际问题?您说格式化的日期是较大字符串的一部分。如何将日期部分与周围内容分开,以及代码中的哪些变量对应于日期部分和/或整个字符串。