Ios NSDate格式在模拟器上正确,在设备上不正确

Ios NSDate格式在模拟器上正确,在设备上不正确,ios,ios6,nsdate,nsdateformatter,Ios,Ios6,Nsdate,Nsdateformatter,我正在使用NSDateFormatter将日期格式化为相对日期。在模拟器中,日期正确显示为2012年11月12日,但在我的设备上,日期显示为2012-11-12。我运行的操作系统版本都相同 以下是我正在使用的代码: NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setTimeStyle:NSDateFormatterNoStyle]; [dateFormatter setDateSt

我正在使用NSDateFormatter将日期格式化为相对日期。在模拟器中,日期正确显示为2012年11月12日,但在我的设备上,日期显示为2012-11-12。我运行的操作系统版本都相同

以下是我正在使用的代码:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setTimeStyle:NSDateFormatterNoStyle];
[dateFormatter setDateStyle:NSDateFormatterMediumStyle];
[dateFormatter setDoesRelativeDateFormatting:YES];
NSString *dateString = [dateFormatter stringFromDate:dateToDisplay];

谢谢

可能是不同的定位。在设备和模拟器上检查设置->常规->国际。您可以设置dateFormatter的区域设置,如


可能是不同的本地化。在设备和模拟器上检查设置->常规->国际。您可以设置dateFormatter的区域设置,如


好的,谢谢,这似乎是问题所在。但是,如果我强制en/US,它不会返回日期的正确翻译吗?如果操作系统语言设置为法语,我不希望显示英语月份或显示日期的方式。。有什么想法吗?@runmad不要在日期格式化程序上设置区域设置,除非您有特定的理由在该区域设置日期格式。默认情况下,日期格式化程序根据设置应用程序中的区域格式设置使用当前区域设置。好的,感谢您的澄清。奇怪的是,加拿大英语默认为yyyy-MM-dd而不是相对日期。好的,谢谢,这似乎就是问题所在。但是,如果我强制en/US,它不会返回日期的正确翻译吗?如果操作系统语言设置为法语,我不希望显示英语月份或显示日期的方式。。有什么想法吗?@runmad不要在日期格式化程序上设置区域设置,除非您有特定的理由在该区域设置日期格式。默认情况下,日期格式化程序根据设置应用程序中的区域格式设置使用当前区域设置。好的,感谢您的澄清。奇怪的是,加拿大英语默认为yyyy MM dd而不是相对日期。是的,如果没有明确设置日期格式,请设置区域设置。特别是如果您确实明确设置了需要注意的格式。是的,如果您没有明确设置日期格式,请设置区域设置。尤其是如果您明确设置了需要注意的格式。
NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en/US"];
[dateFormatter setLocale:locale];