将NSString转换为NSDates时,如何避免语言问题?

我试图将一个NSString转换为一个NSDate。 如果iPhone地区设置为英语(美国),它是完美的,但是当我把它设置为瑞典它不。

我的代码:

[...] // Get the date from the post NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"eee, dd MMM yyyy HH:mm:ss ZZZ"]; int storyIndex = [indexPath indexAtPosition: [indexPath length] - 1]; NSDate *dateFromString = [[[NSDate alloc] init] retain]; dateFromString = [dateFormatter dateFromString:[[stories objectAtIndex:storyIndex] objectForKey: @"date"]]; NSLog(@"String: %@", [[stories objectAtIndex:storyIndex] objectForKey: @"date"]); NSLog(@"date From string: %@", dateFromString); // Set date string NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; [formatter setDateFormat:@"YYYY-MM-dd HH:MM"]; NSString *stringFromDate = [formatter stringFromDate:dateFromString]; stringFromDate = [stringFromDate stringByReplacingOccurrencesOfString:@"\n" withString:@""]; NSLog(@"StringDate: %@", [dateFormatter stringFromDate:[[NSDate alloc] init]]); [...] 

logging结果:

 [...] 2009-11-27 16:13:22.804 sportal.se[755:4803] String: Fri, 27 Nov 2009 12:56:13 +0100 2009-11-27 16:13:22.812 sportal.se[755:4803] date From string: (null) 2009-11-27 16:13:22.819 sportal.se[755:4803] StringDate: fre, 27 nov 2009 16:13:22 +0100 [...] 

这里的问题是,它预计“fre,2009年11月27日… +0100”,但得到“2009年11月27日星期五… +0100”。 我怎样才能解决这个问题?

NSDateFormatter有一个属性locale 。 尝试:

 dateFormatter.locale = [[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"] autorelease];