0

嗨,我从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

4

2 回答 2

2

您需要使用“yyyy”而不是“YYYY”。

“Y”:年份(在基于“一年中的一周”的日历中)。通常长度指定填充,但对于两个字母,它还指定最大长度。此年份名称用于 ISO 8601 定义的 ISO 年-周日历,但也可用于需要处理周日期的非公历日历系统中。可能并不总是与日历年相同。

“一年中的一周”中的 Y 年:  
    Y -> 1997

“y”:年份。通常长度指定填充,但对于两个字母,它还指定最大长度。

年份:   
    年 -> 96  
    y 或 yyyy -> 1996

请参阅:ICU 格式化日期和时间
另请参阅: CLDR 日期字段符号表。

于 2014-10-03T13:46:10.070 回答
1

您需要将格式替换为:

@"yyyy-MM-dd"
于 2014-10-03T13:51:47.753 回答