gpt4 book ai didi

ios - NSDateFormatter:如果应用程序针对该语言进行了本地化,则仅显示本地化日期

转载 作者:行者123 更新时间:2023-12-03 16:20:31 40 4
gpt4 key购买 nike

我目前正在为 iPhone 编写一款与日期相关的应用程序。我正在使用 NSDateFormatter 将日期转换为字符串。方便的是,NSDateFormatter 根据区域格式自动以用户语言创建字符串。由于我无法将我的应用本地化为所有可能的语言和地区,因此该应用仅本地化为英语、德语、西类牙语和其他几种语言。

例如,当应用程序为法语用户运行时,应用程序默认为英语。没关系,但日期仍将使用法语进行转换。这会产生类似“Month: Juillet”的字符串,而不是“Month: July”。

如何使 NSDateFormatter 始终使用应用程序运行时使用的语言?我知道我可以使用 NSLocalizedString() 来本地化 NSLocale 标识符,但这会产生不正确的区域设置。

当用户通常使用“en_GB”区域并且我的应用程序通常本地化为英语时,我希望 NSDateFormatter 使用“en_GB”而不仅仅是“en”或“en_US”。当用户运行法语时,我希望区域设置为“en”,如果他在“de_DE”区域运行应用程序,我也希望日期格式为“de_DE”,因为该应用程序支持德语。

问候,费边

最佳答案

当您创建日期格式化程序时,它会根据当前区域设置初始化其样式,但您可以覆盖它。

[未测试]您可以使用以下命令从用户列表和可用区域设置中获取最佳区域设置NSBundle:

+ (NSArray *)preferredLocalizationsFromArray:(NSArray *)localizationsArray

NSFormatter:

+ (NSString *)dateFormatFromTemplate:(NSString *)template options:(NSUInteger)opts locale:(NSLocale *)locale

应该为您提供指定区域设置的本地化格式字符串。

然后您可以使用 setDateFormat 覆盖格式化程序的初始日期格式。

关于ios - NSDateFormatter:如果应用程序针对该语言进行了本地化,则仅显示本地化日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11735013/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com