一个bug? NSDateFormatter dateFromString仅对此日期字符串返回null

时间:2014-05-23 15:23:58

标签: ios nsdateformatter

NSString *string = @"1990-04-15";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd"];
return [dateFormatter dateFromString:string];

这总是返回null,当“string”被任何其他日期字符串更改时,它的功能正常,这个日期(1990-04-15)是如此特别吗?

xcode 5,IOS 7,iphone app

整个方法和背景:

“Tools.m”中的

+(NSDate *)stringToDate:(NSString *)string{
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd"];
return [dateFormatter dateFromString:string];
}

和方法叫做:

NSDate *date = [Tools stringToDate:@"1990-04-15"];
NSLog(@"---- the date:%@",date);

1 个答案:

答案 0 :(得分:4)

你在中国吗?如果是这样,那是因为时间转移到夏令时,所以1990年4月15日午夜不存在 - 时间直接跳到凌晨1点。 (您没有提供时间,默认时间是午夜。而且您没有提供时区,因此假定您自己的语言环境。)