您好我从 UIDatePicker 中选择日期并将其转换为NSstring ..所有日期都正常工作。您已将最长日期设为 2001-12-31 。当我选择这个日期时,字符串返回为 的" 2002-12-31"
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
答案 0 :(得分:2)
你需要使用" yyyy"不是" YYYY"。
" Y":年份("周年和#34;基于日历)。通常,长度指定填充,但对于两个字母,它还指定最大长度。今年的指定用于ISO 8601定义的ISO年 - 周日历,但可用于需要周日处理的非基于格里高利的日历系统。可能并不总是与日历年相同的值。
Y year of "Week of Year": Y -> 1997
" y":年。通常,长度指定填充,但对于两个字母,它还指定最大长度。
y year: yy -> 96 y or yyyy -> 1996
请参阅:ICU Formatting Dates and Times
另外:CLDR Date Field SymbolTable.
答案 1 :(得分:1)
您需要将格式替换为:
@"yyyy-MM-dd"