Objective c NSDateFormatter和/';s

Objective c NSDateFormatter和/';s,objective-c,Objective C,我有一个要加载到NSDate的NSString。字符串看起来像:21/10/2011 5:42:02 PM 我写的是: NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; [dateFormat setDateFormat:@"d/M/yyyy h:mm:ss a"]; NSDate *date = [dateFormat dateFromString:dateString]; 日期以空值结束 日期格式化程序显然有问题,但

我有一个要加载到NSDate的NSString。字符串看起来像:21/10/2011 5:42:02 PM

我写的是:

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"d/M/yyyy h:mm:ss a"];
NSDate *date = [dateFormat dateFromString:dateString];
日期以空值结束

日期格式化程序显然有问题,但我不确定是什么问题


非常感谢您的帮助。

如果字符串与格式不匹配,那么它将返回null

例如,这里有一个与格式匹配的示例和一个不匹配的示例:

NSString *dateString = @"11/09/2011 12:22:02";
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"d/M/yyyy h:mm:ss"];
NSDate *date = [dateFormat dateFromString:dateString];
NSLog(@"dateString; %@", date);

NSString *dateString2 = @"2011-11-09 12:22:02 +0000";
NSDate *date2 = [dateFormat2 dateFromString:dateString2];
NSLog(@"dateString; %@", date2);   
这将产生:

2011-11-09 07:27:54.342 Craplet[45608:707] dateString; 2011-09-11 05:22:02 +0000
2011-11-09 07:27:54.343 Craplet[45608:707] dateString; (null)

这对我来说很好。你检查过日期字符串不是零吗?您还泄漏了dateFormat。感谢您的检查。。。日期字符串不是零。字符串中一定有我丢失的其他内容。我只是手动设置字符串值,格式也适用于我。我从文件中读取的日期中显然还有我看不到的其他内容。感谢您的回复。如果您是从文件中读取它们,那么它们可能包含换行符。请尝试
NSLog(@“%i”,[stringFromFile length])
并查看字符串是否具有预期的长度(如果我计算正确,则为21),谢谢。。。新行字符是问题所在。我使用了:dateString=[dateString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];来解决它。谢谢你的回复。我知道如果格式不匹配,我将返回null。我就是看不出我设置的格式有什么问题。