2011-01-21 36 views
2

我試圖返回iOS中setDateFormat的「H:mm」的本地化形式。日本本地化迫使AM/PM顯示

大多數本地化將返回24小時的形式,但對於日本本地化,它返回帶有AM/PM的字符串(顯然是漢字形式)。

根據這個:http://unicode.org/reports/tr35/tr35-6.html#Date_Format_Patterns,'H'會返回24小時的時間,並且正在爲其他東亞本地化(經過測試的韓國和中國本地化)工作。

有人可以提供有關爲什麼iOS顯示AM/PM,即使我沒有指定它顯示日本本地化的見解嗎?

謝謝。

回答

2

你可以分享一些源代碼,你如何設置/獲取日本本地化?

這裏就是我得到:

NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
[formatter setDateFormat:@"H:mm"]; 

NSDate *date = // some time after noon 

[formatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en"]]; 
NSLog(@"en: %@", [formatter stringFromDate:date]); 
[formatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"ja"]]; 
NSLog(@"jp: %@", [formatter stringFromDate:date]); 
[formatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"ko"]]; 
NSLog(@"ko: %@", [formatter stringFromDate:date]); 
[formatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"zh_CN"]]; 
NSLog(@"cn: %@", [formatter stringFromDate:date]); 

這顯示:

en: 14:06 
jp: 14:06 
ko: 14:06 
cn: 14:06 

或者使用默認格式化風格,並重新運行它:

[formatter setDateStyle:NSDateFormatterShortStyle]; 
[formatter setTimeStyle:NSDateFormatterShortStyle]; 

結果:

en: 1/21/11 2:13 PM 
jp: 11/01/21 14:06 
ko: 11. 1. 21. 오후 2:06 
cn: 11-1-21 下午2:06 
+0

我只是用得到的語言環境:格式化的setLocale:[NSLocale currentLocale]; (另外,對於我的iPod設置,我關閉了24小時制) – fnsna

+0

嗯......你如何設置設備的語言環境?您是否在更改地區格式以及語言,或僅僅是語言? – Eric

+0

抱歉,經緯度答覆,但:我厭倦了區域格式+語言爲日語和地區格式爲日本和語言爲英語。對於這兩次嘗試,它仍然返回AM/PM – fnsna

0

檢查設置>通用>日期&時間有24小時的時間設置爲ON