2011-11-09 41 views
0

我从Web服务器获取一些数据。在这个数据中有一个日期(即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); 

我怎样才能得到一个月为一整数?

+3

您的日期格式不博览会和代码之间的匹配 - 是一个错字或者这可能是真正的问题? – Tommy

+0

你说格式化日期是一个较大字符串的一部分。你在做什么将日期部分从周围的内容中分离出来,以及代码中哪些变量对应于日期部分和/或整个字符串。 –

回答

1

这里是做它 - 的快速和肮脏的方式,这是手工键入所以有可能是拼写错误的...

//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]; 
相关问题