Swift:当我的设备设置为 "en"并且我的方案设置为 "de"时,为什么 DateFormatter 使用区域设置 "System Language"

标签 swift dateformatter

我的 iPhone 设置为德语。我的调试方案应用程序语言设置设置为系统语言。我仍然必须手动应用 formatter.locale ... 否则我会得到“星期二”而不是“Dienstag”。当然我不想手动设置语言环境。我希望将输出本地化为用户选择的任何内容。

func weekday(forDate day: Date) -> String {
    let formatter = DateFormatter()
    //formatter.locale = Locale.current // gives me locale en
    formatter.locale = Locale(identifier: "de") //without this line I get locale en
    formatter.setLocalizedDateFormatFromTemplate("E")
    return formatter.string(from: day)
}

是否有我不知道的设置会覆盖我提到的设置?

PS:在 Playgrounds 中,语言环境是正确的。

PPS:在我的 Mac 上,模拟器的语言环境设置为 en,尽管我的 Mac 系统设置为德语。不知道为什么,还没太在意。令我困扰的是,在 iPhone 上它不尊重语言环境。

最佳答案

转到您的 Target 并单击“编辑方案”,然后从选项选项卡中将您的应用程序语言设置为“德语”,如下所示。

enter image description here

关于Swift:当我的设备设置为 "en"并且我的方案设置为 "de"时,为什么 DateFormatter 使用区域设置 "System Language",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66152600/

相关文章:

ios - 无法快速更改旧日期格式的新日期格式?

java - 将 Java Instant 格式化为 "YYYYMMdd"会增加一年?

ios - 如何在 AsyncDisplayKit 中为 AsTableNode 创建框架?

ios - Swift:将 UILabel 添加到 UIScrollView 无法滚动

xcode - 暴露给 Objective-C 代码时 Swift 类的名称不遵循 @objc 重命名

ios - iOS DateFormatter dateFormat fromTemplate 中允许使用哪些格式说明符?

java - 如何在 java 中解析具有两个或三个毫秒数字的日期时间?

ios - 同时更改 UILabel 文本和位置不起作用

ios - 如何将照片(以及标签和按钮)放入 ScrollView ,每次在 Storyboard 中添加新照片时让它变长

Swift:如何使用时区缩写解析日期和时间字符串?