1

我有这个 dd MMM yyyy 格式的日期数组。现在我需要将月份和年份从这个数组中分离出来。现在,如果我选择特定的月份和年份,如果我在 UIpickerview 中绑定年份和月份数组并选择特定的年份和月份,我需要获取该年份和月份中相应​​的日期列表,即之前原始数组中的日期。例如,如果选择了 Jan 和 2012,我需要获取类似 {01 Jan 2012,05 Jan 2012,..28 Jan 2012} 的日期。我是目标 C 的初学者,任何帮助将不胜感激。

4

2 回答 2

3

首先使用 NSDateFormatter 将字符串转换为 NSDate,然后使用比较器从日期中提取日、月和年,将日期格式更改为所需的格式。

检查以下内容。

 NSString *date = @"10/12/2012";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"dd/MM/yyyy"];
NSDate *dateFromString = [dateFormatter dateFromString:date];
NSCalendar *calendar =[NSCalendar currentCalendar];
NSDateComponents *components = [calendar components:(NSDayCalendarUnit | NSMonthCalendarUnit |NSYearCalendarUnit) fromDate:dateFromString];
int day =[components day]; //day from the date
int month = [components month];//month from the date
int year = [components year];// year from the date
[dateFormatter setDateFormat:@"dd MMM yyyy"] ;
NSString *InDate = [dateFormatter stringFromDate:dateFromString];//req format 10 jan 2012
于 2013-04-16T06:38:23.697 回答
2

不完全满足您的要求,但您可以解决它。

NSDate *today = [NSDate date];
NSCalendar *gregorian = [[NSCalendar alloc]
                         initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *components =
                    [gregorian components:(NSMonthCalendarUnit | 
                                           NSYesrCalendarUnit) fromDate:today];

NSInteger month = [components month];
NSInteger year  = [components year];
于 2013-04-16T06:39:29.600 回答