某些日期的 NSDate 格式不是有效日期

NSDate formatting for some date is not the valid date

目前我有一段代码正在将用户键入的一组字符串(例如 900130)转换为使用 yyMMdd(马来西亚 IC)格式的日期。我的字符串转换代码如下:

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyMMdd"];
date = [dateFormat dateFromString:temp]; // temp = string key in by user

我在运行测试的时候没有出现这个问题,但是当我把它交给别人测试的时候,问题出现在字符串490130应该转换成30/ 1/1949 将其转换为 30/1/2049。

如何将 490130 转换为 30/1/1949 而不是 30/1/2049

如果年份小于 50,

NSDateFormatter 假设 2 位数年份为 20xx,如果年份大于 50,则假设 2 位数年份为 19xx。我忘记了当年份是50.

您似乎想要一个不同于 50 的截止值。没有内置支持使用不同的截止值。

一种选择是查看前两个字符,看看它是低于还是低于您的截止值。然后根据需要将 19 或 20 添加到字符串的开头。然后使用 yyyyMMdd.

解析字符串