2011-10-10 35 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]; 
相關問題