我正在開發iOS應用程序以支持英語和日語。iOS:內部化日語日期格式以顯示平成日曆
我想顯示日期的日文日曆類型(平成)。
而不是顯示英國2013年的,我想顯示平成今年25
25年1月5日平成(地區格式:美國,日曆:日本,語言:英語) 平成25年1月5日(地區格式:日本,日曆:日語,語言:英語)
注意:即使我將日曆類型更改爲日語時,我無法在iOS日曆中看到平成。
我正在開發iOS應用程序以支持英語和日語。iOS:內部化日語日期格式以顯示平成日曆
我想顯示日期的日文日曆類型(平成)。
而不是顯示英國2013年的,我想顯示平成今年25
25年1月5日平成(地區格式:美國,日曆:日本,語言:英語) 平成25年1月5日(地區格式:日本,日曆:日語,語言:英語)
注意:即使我將日曆類型更改爲日語時,我無法在iOS日曆中看到平成。
使用日期格式化程序和區域設置。如果你想要「1月5日,25日元」格式,這是一個區域標識符[email protected]=japanese
。 「平成25年1月5日」的標識是[email protected]=japanese
。
此代碼演示瞭如何使用這兩個,因爲我轉換了「25年1月5日平成」串到NSDate
,然後轉換該NSDate
回字符串的形式「平成25年1月5日」。
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"[email protected]=japanese"];
formatter.dateStyle = NSDateFormatterLongStyle;
NSDate *date = [formatter dateFromString:@"January 5, 25 Heisei"];
formatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"[email protected]=japanese"];
NSString *string = [formatter stringFromDate:date];
需要注意的是要使用的日曆應該是在用戶的便利性,這就是爲什麼,在設置 - 通用 - 國際,也有不同的設置:語言,區域格式,和日曆。 因此,我相信這是最好的做法,是使用默認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在他的回答中所做的那樣。
我能夠得到翻譯的格式'2013年8月7日',但不是平成日曆。 – gviswanathan
使用'[NSLocale currentLocale]'?您是否將設備的日曆設置爲日文版? – Nerkatel
是的,我已經設置currentLocale並更改設置爲日本日曆,地區日本和語言日語在設備 – gviswanathan