1

この dd MMM yyyy 形式の日付の配列があります。この配列とは別の配列で月と年を区切る必要があります。特定の月と年を選択した場合、UIpickerview で年と月の配列をバインドし、特定の年と月を選択すると、以前の元の配列の日付であったその年と月の対応する日付のリストを取得する必要があります。たとえば、1 月と 2012 が選択されている場合、 {01 Jan 2012,05 Jan 2012,..28 Jan 2012} のような日付を取得する必要があります。私は Objective 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 に答える