1、背景:将字符串1998-02-31 转成 NSDate时,调用如下方法,得到的结果是 date:1998-03-02
+ (NSDate *)dateWithString:(NSString *)dateString format:(NSString *)format {
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
NSTimeZone *localTimeZone = [NSTimeZone localTimeZone];
[formatter setDateFormat:format];
[formatter setTimeZone:localTimeZone];
[formatter setCalendar:[NSCalendar calendarWithIdentifier:NSCalendarIdentifierGregorian]];
return [formatter dateFromString:dateString];
}
2、因为这个日期其实是不存在的,如果想要返回date:nil,加上如下代码即可
[formatter setLenient:false];