Ios NSDateFormatter:stringFromDate和dateFromString不可逆?

Ios NSDateFormatter:stringFromDate和dateFromString不可逆?,ios,nsdateformatter,Ios,Nsdateformatter,使用带有NSDateFormatter的自定义日期格式化程序将字符串转换为日期时遇到问题。下面是一个简短的示例,它从今天的日期创建一个字符串,但无法将其转换回NSDate: NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"Mdyyyy"]; NSString *example = [dateFormatter stringFromDate:now];

使用带有
NSDateFormatter
的自定义日期格式化程序将字符串转换为日期时遇到问题。下面是一个简短的示例,它从今天的日期创建一个字符串,但无法将其转换回
NSDate

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"Mdyyyy"];
NSString *example = [dateFormatter stringFromDate:now];    // e.g., 10292013
NSDate *reverse = [dateFormatter dateFromString:example];  // nil?
因此,基本上看来,
NSDateFormatter
正在创建一个日期字符串,它本身无法使用创建该字符串的相同格式将其转换回
NSDate

使用
MMddyyyy
作为日期字符串工作,尽管我无法从中看出(它只方便地升级到iOS 6.0)为什么重要:

month   M   1..2    09  Month - Use one or two for the numerical month, ....
...
day d   1..2    1   Date - Day of the month
我之所以尝试使用
Mdyyyy
而不是
mmddyyy
是因为它更接近于
NSDateFormatterShortStyle
为我当前的
NSLocale
m/d/yy
)返回的内容


也许有人对我做错了什么,或者我对这应该如何工作的理解是错误的,在这里有一些见解。(我知道这里有很多关于
NSDateFormatter
的问题,但我没有找到一个适合我的问题。)

Mdyyyy作为字符串->日期映射是不明确的。我们无法判断“1112013”是1月11日还是11月1日。因此,NSDateFormatter将不允许它用于字符串->日期。

Mdyyyy作为字符串->日期映射是不明确的。我们无法判断“1112013”是1月11日还是11月1日。因此,NSDateFormatter将不允许它在字符串->日期中使用。@HotLicks,啊,当然了,我想它不在乎在创建字符串时不能读回它。。。。如果你愿意发布一个答案,我会接受的。