【发布时间】:2020-01-10 14:22:09
【问题描述】:
要实现的目标
在表格中,有一个日期列。日期应具有基于用户区域设置的格式。 示例:
- 24/01/2020 或 24/01/20(我不介意)适用于法国用户
- 2020 年 1 月 24 日,美国用户
注意:该应用程序(目前)只有英文版。
我有一个Date 对象,我想以正确的格式向用户显示它。为此,我想我必须使用具有 locale 参数的 DateFormatter。但我遇到了后者的问题。
问题
在 Xcode 操场上,在法语 (Regio = BE) 的 Mac 上(但 Xcode 是英语),以下代码返回奇怪的东西。
Locale.current.regionCode // returns "BE"
Locale.current.languageCode // returns "en"
Locale.preferredLanguages[0] // returns "en"
Locale.current.identifier // returns "en_BE"
Locale.current.collatorIdentifier // returns "fr-BE"
Locale.current.collationIdentifier // returns nil
注意:法语是比利时的一种语言。
collatorIdentifier 让我感兴趣,因为它是唯一一个检测到我的 mac 是法语的。但它是什么?它的目标是什么?为什么它返回的东西与其他的明显不同?
【问题讨论】:
-
感谢您提供的链接,这当然很有趣。但是我想知道它如何回答
Locale.collatorIdentifier是什么以及为什么它返回的结果与其他示例不同的问题。 -
您说过您的目标是什么,这就是您应该如何根据用户区域设置和设备设置显示本地化日期。如果这不能解决您的问题,请告诉我,以便我重新提出您的问题。
-
这确实是最终目标,但问题在于语言环境。参考问题的问题部分。
标签: swift nsdateformatter foundation