2013-08-07 75 views
2

我正在開發iOS應用程序以支持英語和日語。iOS:內部化日語日期格式以顯示平成日曆

我想顯示日期的日文日曆類型(平成)。

而不是顯示英國2013年的,我想顯示平成今年25

25年1月5日平成(地區格式:美國,日曆:日本,語言:英語) 平成25年1月5日(地區格式:日本,日曆:日語,語言:英語)

注意:即使我將日曆類型更改爲日語時,我無法在iOS日曆中看到平成。

回答

3

使用日期格式化程序和區域設置。如果你想要「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]; 
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在他的回答中所做的那樣。

+0

我能夠得到翻譯的格式'2013年8月7日',但不是平成日曆。 – gviswanathan

+0

使用'[NSLocale currentLocale]'?您是否將設備的日曆設置爲日文版? – Nerkatel

+0

是的,我已經設置currentLocale並更改設置爲日本日曆,地區日本和語言日語在設備 – gviswanathan