2014-10-03 61 views
0

嗨我選擇從UIDatePicker日期並將其轉換爲NSstring ..所有的日期工作正常。您好設定的最大日期爲2001-12-31。當我選擇這個日期字符串回報 「2002-12-31」 這裏轉換NSDate到NString問題

dOBPicker = [[UIDatePicker alloc]initWithFrame:CGRectMake(20, 30, 360, 55)]; 
dOBPicker.datePickerMode = UIDatePickerModeDate; 


NSDateFormatter* formatter = [[NSDateFormatter alloc] init]; 
formatter.dateFormat = @"YYYY-MM-dd"; 
dOBPicker.maximumDate = [formatter dateFromString:@"2001-12-31"]; 

轉換

NSDateFormatter *dateOfBirthFormat =[[NSDateFormatter alloc]init]; 
dateOfBirthFormat.dateFormat = @"YYYY-MM-dd"; 

[dateOfBirthFormat setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]]; 
NSString *dob = [dateOfBirthFormat stringFromDate:dOBPicker.date]; 

NSLog(@"The dob is %@", dob); 

輸出爲:2002-12-31

回答

2

你需要使用「yyyy」而不是「YYYY」。

「Y」:年份(以「Week of Year」爲基準的日曆)。通常,長度指定填充,但對於兩個字母,它也指定最大長度。今年指定用於ISO 8601定義的ISO年曆日曆,但可用於需要星期處理的非格里曆日曆系統。可能並不總是與歷年相同的價值。

 
Y year of "Week of Year": 
    Y -> 1997 

「y」:Year。通常,長度指定填充,但對於兩個字母,它也指定最大長度。

 
y year: 
    yy -> 96 
    y or yyyy -> 1996 

參見:ICU Formatting Dates and Times
另外:CLDR Date Field SymbolTable.

+0

感謝您的答覆我會檢查 – Seeker 2014-10-03 13:56:12

1

您需要更換格式此:

@"yyyy-MM-dd"