0
我想我的问题会更像︰dateString1和dateString2之间的区别是什么?解析XML NSString到NSDate输出(null)
NSString *dateString = [NSString stringWithFormat:@"2012-07-09 04:10:00 +0000"];
NSString *dateString2 = [NSString stringWithFormat:[[list objectAtIndex:0] nsDate]];
NSArray *chunks = [dateString2 componentsSeparatedByString:@">"];
NSString *correct = [chunks objectAtIndex:0];
NSLog(@"StingOne:%@", dateString);
NSLog(@"InvalidTwo:%@", dateString2);
NSLog(@"StingTwo:%@", correct);
NSDate *datefromString = [[NSDate alloc] init];
NSDate *datefromString2 = [[NSDate alloc] init];
NSDateFormatter *formater = [[NSDateFormatter alloc] init];
[formater setDateFormat:@"yyyy-MM-dd hh:mm:ss z"];
NSDateFormatter *formater2 = [[NSDateFormatter alloc] init];
[formater2 setDateFormat:@"yyyy-MM-dd hh:mm:ss z"];
datefromString = [formater dateFromString:dateString];
datefromString2 = [formater2 dateFromString:correct];
NSLog(@"1st DATE:%@", datefromString);
NSLog(@"2nd DATE:%@", datefromString2);
正如你可以在这段代码中看到的,我将两个字符串转换为NSDate。这是我在我的日志控制台中看到:
2012-04-24 17:22:09.586 NSString2NSDate[20233:f803] StingOne:2012-07-09 04:10:00 +0000
2012-04-24 17:22:09.589 NSString2NSDate[20233:f803] InvalidTwo:2012-07-19 23:00:00 +0000>
2012-04-24 17:22:09.590 NSString2NSDate[20233:f803] StingTwo:2012-07-19 23:00:00 +0000
2012-04-24 17:22:09.594 NSString2NSDate[20233:f803] 1st DATE:2012-07-09 04:10:00 +0000
2012-04-24 17:22:09.595 NSString2NSDate[20233:f803] 2nd DATE:(null)
我不能让我的心在这里有什么问题,因为这两个字符串输出正确的NSLog为字符串。我注意到从xml解析的dateString2在末尾有“>”,这肯定是在进程的某个地方添加的,所以我删除了它,但是NSDate仍然是(null)。
这是字符串编码问题,我该如何解决这个问题?
XML文件编码是utf-8。
谢谢。
谢谢。工作正常。第二个格式化程序就是100%确定的。 – defou 2012-04-24 15:56:49