2014-10-03 60 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"