Ios 日期格式不适用于1916年5月

Ios 日期格式不适用于1916年5月,ios,objective-c,nsdate,nsdateformatter,Ios,Objective C,Nsdate,Nsdateformatter,我正在尝试使用以下代码将两个NSString格式化为一个NSDate: NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"MM/yyyy"]; NSString *dateString = @"5/1916"; NSString *dateString2 = @"6/1916"; NSDate *date = [dateFormatter dateFr

我正在尝试使用以下代码将两个NSString格式化为一个NSDate:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"MM/yyyy"];

NSString *dateString = @"5/1916";
NSString *dateString2 = @"6/1916";

NSDate *date = [dateFormatter dateFromString:dateString];
NSDate *date2 = [dateFormatter dateFromString:dateString2];
猜猜看:

date为零,date2工作正常(不是零)。 知道这是怎么回事吗

编辑: 对于那些认为是关于字符串的人来说,下一个屏幕截图是关于samen的问题。

您的代码运行良好,结果如下

Printing description of dateString:
05/1916
Printing description of date:
1916-04-30 18:06:40 +0000

但问题是,NSDate必须具有
日、月、年
只要修改代码,为dateformatter提供正确的日期。

在大多数语言中,5/1916不被接受,但05/1916是,因为格式是MM/yyyy而不是M/yyyy。字符串的长度是必需的

希望有帮助,
eiran

这两个日期在我这边都很好,即使是在模拟器和真实设备上;并且它显示了正确的日期。我在我的问题中添加了一个屏幕截图和我的结果。这是一个真实的设备和一个模拟器。你想得到什么?请告诉我。有一个真实的NSDate对象而不是nil。它适用于1914年至1918年的所有日期,除了这一次清洁产品并再次运行之外。我在我的问题中添加了一个屏幕截图,显示了我的结果。请尝试“05/1916”而不是“5/1916”,因为它是“MM/yyyy”编号@“MM/yyyy”是正确的表示法。Bcoz第10、11、12个月的长度为2