2014-02-11 88 views
0

我試圖使服務的日期作爲默認日期,並在uidatepicker中進行選擇。我嘗試了一些東西,但它不起作用。在UIDatePicker中選擇特定的日期?

NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar] ; 
    NSDateComponents *components = [[NSDateComponents alloc] init]; 
    [components setYear:[[tempBirthDate substringToIndex:4] integerValue]]; 
    [components setMonth:[[tempString substringFromIndex:5] integerValue]]; 
    [components setDay:[[tempBirthDate substringFromIndex:8] integerValue]]; 
    NSDate *defualtDate = [calendar dateFromComponents:components]; 
    [datePicker setDate:defualtDate]; 

我在想什麼?

你能幫我弄清楚嗎?

例如:值從服務來爲1986年3月19日

,我希望它通過選擇器選擇。

+0

向我們展示你的樣本值從服務接收和預期輸出 – NeverHopeless

+0

你爲什麼不使用,而不是[成分NSDateformatter setYear :[[tempBirthDate substringToIndex:4] integerValue]]; blah blah .... – Johnykutty

回答

3
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar] ; 
NSDateComponents *components = [[NSDateComponents alloc] init]; 
[components setYear:[[tempBirthDate substringWithRange:NSMakeRange(6, 4)] integerValue]]; 
[components setMonth:[[tempBirthDate substringWithRange:NSMakeRange(0, 2)] integerValue]]; 
[components setDay:[[tempBirthDate substringWithRange:NSMakeRange(3, 2)] integerValue]]; 
NSDate *defualtDate = [calendar dateFromComponents:components]; 
[datePicker setDate:defualtDate]; 
+0

它不起作用 – erdemgc

+0

你有什麼錯誤嗎?在您將tempBirthDate設置爲'03/19/1986'之前,將其設置爲datePicker之前,defaultDate的值是多少? – yoninja

+0

您是否嘗試複製此代碼並替換您的代碼?或者只是複製NSMakeRange ...部分?在上面的代碼中,你可以看到有tempString ...這是從哪裏來的? – yoninja

1

可以使用NSDateFormatter放置日期的日期選取器:

NSDateFormatter *formatter = [[NSDateFormatter alloc] init] ; 
[formatter setDateFormat:@"MM/dd/yyyy"]; 
NSDate *date = [formatter dateFromString:dateFromServer]; 
[datePicker setDate:date]; 
相關問題