你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> iOS應用開發中使用NSLocale類實現對象信息的本地化

iOS應用開發中使用NSLocale類實現對象信息的本地化

編輯:IOS開發綜合

如何正確地格式化時間

這也是我們這兩天遇到的問題,跟用戶幾經溝通之後,終於抓到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]

第一個元素即為當前用戶設置的語言

20165490753435.png (530×543)

6.監聽用戶本地化設置的消息
復制代碼 代碼如下:
[NSNotificationCenter defaultCenter] addObserver:self                                         selectorselector(localChangedHandler                                             name:NSCurrentLocaleDidChangeNotification object:nil];

7.以本地化方式獲取國際化信息的顯示名稱
復制代碼 代碼如下:
NSLocale *curLocal = [[NSLocale alloc]initWithLocaleIdentifier"zh-Hans"] ;

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved