我正在阅读一个字符串文件。每个字符串看起来像:
!AIVDO,1,1,,B,11b4N?HPs0KLrBDIStg; q?w22< 06,0 * 5A,21 / 10/2011 12:01:13 PM
到目前为止,我所做的是:
NSArray *arrayFromString = [theString componentsSeparatedByString:@","];
NSString *dateString = [tempArrayFromAISString objectAtIndex:7];
// dateString = @"21/10/2011 12:01:13 PM";
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"d/M/yyyy h:mm:ss a"];
NSDate *date = [dateFormat dateFromString:dateString];
这将返回NSDate(null)。
字符串设置正常,因为当我用NSLog输出它时看起来不错。
日期格式化程序是正常的,因为如果我取消注释注释掉的行并自己设置日期字符串就可以了。
关于为什么数组中的字符串不起作用的任何想法?
提前感谢您的帮助。
答案 0 :(得分:1)
更改为
[dateFormat setDateFormat:@"dd/MM/yyyy HH:mm:ss a"];
答案 1 :(得分:0)
您的示例包含拼写错误。 arrayFromString
≠tempArrayFromAISString
这对我有用
NSString *theString = @"!AIVDO,1,1,,B,11b4N?HPs0KLrBDIStg;q?w22<06,0*5A,21/10/2011 12:01:13 PM";
NSArray *arrayFromString = [theString componentsSeparatedByString:@","];
NSString *dateString = [arrayFromString objectAtIndex:7];
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"d/M/yyyy h:mm:ss a"];
NSDate *date = [dateFormat dateFromString:dateString];
NSLog(@"%@", date);
答案 2 :(得分:0)
最后有一个换行符,因为我正在读取一个文件。我修好了:
dateString = [dateString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
这摆脱了行尾字符。