从UIDatePicker中提取日期

Rad*_*dix 2 iphone xcode objective-c uidatepicker

你可以告诉我如何从UIDatePicker中提取日期,我提取了月份,但我无法提取日期,请帮帮我

谢谢

wh1*_*t1k 6

NSDate目的可以通过只访问该被提取date的对象的属性:

NSDate *dateFromPicker = [someDatePicker date];  
Run Code Online (Sandbox Code Playgroud)

如果你想提取一个人选择的月,日和年的详细信息,这有点复杂(但只是一点点).解决方案是使用NSCalendar参考 - 您可能想要使用Gregorian.

NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier: NSGregorianCalendar];
Run Code Online (Sandbox Code Playgroud)

现在,您应该使用无符号整数单位标志来指定要从日期(即日期,日期,年份,时代等)中提取的单位.使用按位| 选择多个单位标志:

unsigned unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit;
Run Code Online (Sandbox Code Playgroud)

现在创建一个日期组件对象:

NSDateComponents *components = [calendar components: unitFlags fromDate: dateFromPicker];
Run Code Online (Sandbox Code Playgroud)

从此组件日期开始,您现在可以提取unitFlags整数中提到的整数值:

int year = [components year];
int month = [components month];
Run Code Online (Sandbox Code Playgroud)

所有其他属性(即日,月,日等)在这样的组件对象中是未定义的 - 记住,您只能提取您明确表示要提取的内容.

最后,释放日历对象以避免内存泄漏:

[calendar release];
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助.有关详细信息,请参阅Apple参考:http: //developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/DatesAndTimes/DatesAndTimes.html