我从解析XML文件中得到一个字符串,看起来像这样:Fri,2010年4月9日00:00:45 +0200 和相应的模式应该是这个“EEE,dd MMM yyyy HH:毫米:SS ZZ“,但我得到(null)。iPhone SDK NSString到NSDate
这是我的代码:
NSString *dateString = @"Fri, 09 Apr 2010 00:00:45 +0200";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss ZZ"];
NSDate *date = [dateFormatter dateFromString:dateString];
NSLog(@"date:%@",date); // result date:(null)
编辑:
现在,这对我的作品,我不得不切换到EN-US定位:
NSLocale* usLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en-US"];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setLocale:usLocale];
[dateFormatter setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss ZZ"];
NSDate *date = [dateFormatter dateFromString:dateString];
别忘了发布你的dateFormater&usLocale! – Martin 2012-05-11 14:10:24
原因是您的设备12/24设置与区域设置相反。这会导致Apple通过将“HH:mm:ss”更改为“hh:mm:ssa”来“帮助”您。使用en-US语言环境会禁用此“功能”。 (虽然en_US_POSIX更好。) – 2014-01-16 14:19:08