我正在开发一个支持英语和日语的iOS应用程序。
我想显示日期的日历日历类型(平成)。
而不是显示2013年英语年,我想展示平成25年。
1月5日,25日平成(地区格式:美国,日历:日语,语言:英语) 平成25年1月5日(地区形式:日本,日历:日语,语言:英语)
注意:当我将日历类型更改为日语时,即使我无法在iOS日历中看到Heisei。
答案 0 :(得分:3)
使用日期格式器和区域设置。如果您想要“1月5日,25日平成”格式,那就是en_US@calendar=japanese
的区域设置标识符。 “平成25年1月5日”的标识符为ja_JP@calendar=japanese
。
此代码说明了将“1月5日,25日平成”字符串转换为NSDate
时使用两者,然后将NSDate
转换回“平成25”形式的字符串年1月5日”。
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US@calendar=japanese"];
formatter.dateStyle = NSDateFormatterLongStyle;
NSDate *date = [formatter dateFromString:@"January 5, 25 Heisei"];
formatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"ja_JP@calendar=japanese"];
NSString *string = [formatter stringFromDate:date];
答案 1 :(得分:0)
请注意,要使用的日历应该在用户方便的情况下,这就是为什么在“设置 - 常规 - 国际”下,有不同的设置:语言,区域格式和日历。 因此,我认为最好的做法是使用默认的NSLocale:
NSDate * date = [NSDate date];
NSDateFormatter * dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setLocale:[NSLocale currentLocale]];
dateFormatter.dateStyle = NSDateFormatterLongStyle;
NSLog(@"Date : %@", [dateFormatter stringFromDate:date]);
对于具有英语区域格式和日语日历的设备集,将输出以下内容:August 7, 25 Heisei
,但对于具有日语区域格式和日语日历的设备集,则输出平成25年8月7日
。
如果你想强制使用区域格式和日历,你可以为他创建一个特定的语言环境,正如Rob在他的回答中所做的那样。