2011-10-10 36 views
1

可能重复:
UIDatePicker and NSDate如何在UIDatePicker的一天添加标签 - 例如只是 “28” 时,选定的日期为 “28/10/2011”

我能做到这一点,怎么样?我只需要获得用户输入的一天,并把它变成一个标签,而不是整个日期(如旧:28/10/2011新:28)

感谢

+0

你看看''NSDateFormatter http://developer.apple.com/library/mac /#documentation/Cocoa/Reference/Foundation/Classes/NSDateFormatter_Class/Reference/Reference.html – Faser

+0

我做了,并设法把整个日期,但不只是一天:'( – pixelbitlabs

回答

3

如果您的用户输入您需要以NSDateFormatter开头的文字,然后才能从日历组件中提取日期。 (我建议收集通过UIDatePicker日期)

//Start here for a date that is a string 
NSString *userinput = @"28/10/2011"; 

NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
[formatter setDateFormat:@"dd/MM/yyyy"]; 
NSDate *date = [formatter dateFromString:userinput]; 
[formatter release]; 

//Start here if you already have an `NSDate` object 
NSDateComponents *components = [[NSCalendar currentCalendar] components:NSDayCalendarUnit 
                   fromDate:date]; 

NSString *dayForLabel = [NSString stringWithFormat:@"%d", [components day]]; 
+0

伟大,谢谢!我会如何添加事件发送到iPhones日历使用完整的DatePicker日期? – pixelbitlabs

+0

有关说明位于[Event Kit编程指南](http:// develo per.apple.com/library/ios/#documentation/DataManagement/Conceptual/EventKitProgGuide/EditingEventsProgrammatically.html#//apple_ref/doc/uid/TP40005158-SW1) – Joe

+0

谢谢!另外,我把这个:http://pastie.org/2672944,但标签中有一个“%”,而不是实际的天数......这是为什么? :) – pixelbitlabs

1

事情是这样的:?

NSDate *date = [picker date]; 

NSCalendar *calendar = [picker calendar]; 

NSDateComponents *dateComponents = [calendar components:(NSDayCalendarUnit | NSMonthCalendarUnit | NSYearCalendarUnit) fromDate:date]; 

NSInteger day = [dateComponents day]; 

label.text = [NSString stringWithFormat:@"%d", day]; 
相关问题