我目前正在編寫一個應用程序,嚴重與日期工作的iPhone。我正在使用NSDateFormatter
將日期轉換爲字符串。方便的是,NSDateFormatter
根據區域格式自動創建用戶語言的字符串。 由於我無法在所有可能的語言和地區中本地化我的應用,因此該應用僅以英文,德文,西班牙文和其他幾種語言進行了本地化。NSDateFormatter:只顯示本地化的日期,如果應用程序本地化的語言
例如,當該應用程序正在爲法語用戶運行時,該應用默認爲英語。這很好,但日期仍將使用法語進行轉換。這導致像「Month:Juillet」而不是「Month:July」這樣的字符串。
如何使NSDateFormatter
始終使用應用程序運行的語言? 我知道我可以使用NSLocalizedString()
本地化NSLocale
標識符,但這會在不正確的區域設置中產生。
當用戶通常使用「en_GB」區域並且我的應用程序一般用於英語本地化時,我希望NSDateFormatter
使用「en_GB」而不僅僅是「en」或「en_US」。當用戶運行法語時,我希望語言環境爲「en」,如果他在「de_DE」區域中運行該應用程序,我希望日期格式也爲「de_DE」,因爲該應用程序支持德語。
問候, 費邊
你說得對。使用' - [NSBundle preferredLocalizations]'(在內部使用'+ preferredLocalizationsFromArray:')我得到它正常工作。謝謝! – 2012-07-31 09:13:46
'dateFormatFromTemplate:'僅在內置日期和時間樣式不符合您的需要時才需要。否則,您應該優先使用日期格式字符串。 – 2012-07-31 13:17:09
是的,我只用於'MMMM YYYY'和'dateStyle'和'timeStyle'等其他所有格式。 – 2012-08-17 16:52:49