NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.dateFormat = @"yyyy-MM-dd";
NSDate *date = [dateFormatter dateFromString:@"1989-04-16"];
NSLog(@"%@", date);
我想解析日期字符串@" 1989-04-16"。它失败了。但其他字符串也可以,比如@" 1989-04-17"或@" 1989-04-15"。为什么?非常感谢你。
我很抱歉用" yyyy-dd-MM"写了一个formateString,实际上" yyyy-MM-dd"。它仍然没有工作。我在中国。时区必须是GMT +8。所以我将NSTimeZone添加到dateFormatter并且它可以工作,就像@Amin Negm-Awad所说的那样!非常感谢你。
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.dateFormat = @"yyyy-MM-dd";
dateFormatter.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:3600*8];
NSDate *date = [dateFormatter dateFromString:@"1989-04-16"];
NSLog(@"%@", date);
答案 0 :(得分:0)
你的格式错了:
你说yyyy-dd-MM(年/日/月)
但你给它一个字符串是yyyy-MM-dd(1989-04-17)
=>所以将格式化程序的格式更改为'yyyy-MM-dd'