iOS應用開發中使用NSLocale類實現對象資訊的本地化_IOS

來源:互聯網
上載者:User

如何正確地格式化時間

這也是我們這兩天遇到的問題,跟使用者幾經溝通之後,終於抓到log,發現問題竟然是格式化導致的。怎麼解決呢?

這個時候NSLocale的重要性就體現出來了。NSLocale作為大家都不常用的一個類,NSLocale類是將與國家和語言相關的資訊進行簡單的組合,包括貨幣、語言、國家等的資訊。

所以很簡單,我們把dateFormatter的locale屬性改一下即可解決這個問題。將下面代碼放在dateFormatter初始化之後:

複製代碼 代碼如下:

NSLocale *usLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
dateFormatter.locale = usLocale;


看看問題解決沒有,編譯一下:

2015-07-07 22:20:08.411 TestDemo[6769:1556968] 2015-07-07 22:20:08

果然,問題得到完美解決了。

NSLocale主要用法簡介
用來格式化時間只是NSLocale的一個小技巧,既然談到NSLocale,我們就來簡單瞭解一下:

複製代碼 代碼如下:

+ ISOCountryCodes// 所有的ISO定義的國家地區編碼
+ ISOCurrencyCodes// 所有的ISO定義的貨幣編碼
+ ISOLanguageCodes// 所有ISO定義的語言編碼


以上我們可以用NSLog列印出來看一看。

NSLocale所具有的功能還有很多:

1.擷取系統本地化資訊

複製代碼 代碼如下:

// 擷取系統所有本地化標識符數組列表
[NSLocale availableLocaleIdentifiers] ;

2.擷取當前系統設定語言的標識符

複製代碼 代碼如下:

[[NSLocale currentLocale] localeIdentifier];

3.擷取本地化對象的具體內容

複製代碼 代碼如下:

NSLocale *local = [NSLocale currentLocale];

key值參見NSLocale Calendar Keys

4.擷取當前語言的排版方向和字元方向

複製代碼 代碼如下:

[NSLocale lineDirectionForLanguage:[[NSLocale currentLocale] objectForKey:NSLocaleLanguageCode];

5.擷取使用者的語言喜好設定列表,該列表對應於IOS中Setting>General>Language彈出的面板中的語言列表。

複製代碼 代碼如下:

[NSLocale preferredLanguages]

第一個元素即為目前使用者設定的語言

6.監聽使用者本地化設定的訊息

複製代碼 代碼如下:

[NSNotificationCenter defaultCenter] addObserver:self                                         selectorselector(localChangedHandler                                             name:NSCurrentLocaleDidChangeNotification object:nil];

7.以本地化方式擷取國際化資訊的顯示名稱

複製代碼 代碼如下:

NSLocale *curLocal = [[NSLocale alloc]initWithLocaleIdentifier"zh-Hans"] ;

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.