我在2014年WWDC上观看了国际化的高级主题,他们推荐这样的。此外,我们可以使用不同语言的自定义格式。所以,我这样做。
if([[Helpers getLocale]isEqualToString:@"zh-Hans"] || [[Helpers getLocale]isEqualToString:@"zh-Hant"])
{
formatDate.dateFormat = @"yyyy MMM d"; //TODO: how to set for Chinese? dd also not okay
}
else
{ //Default as English..en
formatDate.dateFormat = @"d MMM yyyy";
}
但是,对于中文,我不能正确设置,我只能得到这个。 2014 8月22日如何设置中文日期的格式,如第一张图片所示? (使用自定义格式)
你应该使用dateFormatFromTemplate
方法。这将采用您首选的日期格式并将其转换为区域设置的格式。如果必须,这将引入任何其他特殊字符,您不必担心它。
作为一个例子,我将我的首选格式“dd MMM yyyy”转换为中文语言的等效格式。
// input format in this case is "dd MMM yyyy"
// when language is set to Chinese, I will change it accordingly like this.
NSLocale *locale = [NSLocale currentLocale];
NSString *language = [locale objectForKey:NSLocaleLanguageCode];
if ([language containsString:@"zh"])
{
format = [NSDateFormatter dateFormatFromTemplate:format options:0 locale:locale];
}
// output format from this code for chinese languages is yyyy年M月dd日
您不必手动插入/删除特殊字符。希望这可以帮助
因为我不懂中文。我们可以使用这种格式。 ÿ年中号月d日
请试试这段代码
NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"zh_Hant_HK"];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setLocale:locale];
[dateFormatter setDateStyle:NSDateFormatterFullStyle];
//[dateFormatter setTimeStyle:NSDateFormatterShortStyle];//if you want show time, please enable this line
NSDate *date = [NSDate date];
NSString* str = [dateFormatter1 stringFromDate:date];