iOS 字符串转时间,超出日期月份自动+1问题

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];

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容