2014-09-24 57 views
0

我已經創建了一個應用程序來獲取一個人的出生日期。我用UITextBox從UIDatePicker獲取用戶的出生日期(當用戶點擊UITextBox時顯示)。當我選擇日期,月份和年份,然後單擊設置,日期顯示在UITextBox中,但日期格式不正確。當我設置日期02/16/1993(MM/DD/YYYY)時,我在UITextBox中獲得了02/47/1993。Days加了(31 + 16 = 47),但是我想顯示02/16/1993。我的代碼是:從UIDatePicker中選取正確的日期格式

NSArray *allViews=[dateSheet subviews]; 
    for (UIView *subView in allViews) 
    { 
     if ([subView isKindOfClass:[UIDatePicker class]]) 
     { 
      self.birthdate=[(UIDatePicker *)subView date]; 
     } 
    } 
    NSDateFormatter *dateFormatter= [[NSDateFormatter alloc] init]; 
    [dateFormatter setDateFormat:@"MM/dd/yyyy"]; 
    [txtDOB setText:[dateFormatter stringFromDate:self.birthdate]]; 

我該怎麼做才能得到正確的格式?

回答

0

你可以試試這個:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init]; 
    [dateFormatter setDateFormat:@"MM/dd/yyyy"]; 
    NSString *strDate = [dateFormat stringFromDate:datePicker.date]; 
    txtDOB.text = strDate; 

但我認爲有一些錯誤設置你的日期選擇器。您應該在.h文件中聲明日期選擇器。

+0

我這樣做,我得到正確的格式,但現在我得到這個 - > CGContextSetFillColorWithColor:無效的上下文0x0。這是一個嚴重的錯誤。此應用程序或其使用的庫正在使用無效的上下文,從而導致系統穩定性和可靠性的整體降級。這個通知是禮貌的:請解決這個問題。它將在即將到來的更新中成爲致命錯誤........這是什麼以及我如何刪除調試區域中的這個錯誤 – 2014-09-24 09:47:59

+0

從哪裏得到這個錯誤? – teach 2014-09-24 09:57:14

0

很明顯,問題在於當天顯示爲「一年中的每日」而不是「每月中的某一天」。 其可使用「DD」,而不是「d」計算一天..有可能是因爲你

參見:http://www.unicode.org/reports/tr35/tr35-19.html#Date_Format_Patterns

您可以修復,在「setDateFormat」字符串。 否則,我會建議你使用NSDateComponents,不僅會給出準確的結果,但也是錯誤的低利潤...