【问题标题】:How to localised string with first later capital in swift?如何在swift中使用首字母大写本地化字符串?
【发布时间】:2020-06-26 14:33:49
【问题描述】:

我正在尝试本地化字符串。

在英语中,我越来越喜欢“Friday, Jun 26”

但在西班牙语中,它就像“jueves, jun 25”。

第一个字母很小。但我正在尝试使用首字母大写字母。

下面是我的代码。

  let longDateFormatter = DateFormatter()
  longDateFormatter.dateFormat = "EEEE, MMM d"
  longDateFormatter.locale = Locale(identifier: "es")

有什么方法可以获取首字母大写的日期。感谢您的帮助/

【问题讨论】:

标签: ios swift date-format


【解决方案1】:

显然西班牙语不像我们在英语中那样将月份和星期几的名称大写。因此,您获得的格式对于西班牙语是正确的,您应该停止尝试更改它。 (本质上,这是一个 x/y 问题。)

查看此链接:https://www.spanishdict.com/answers/181002/do-months-need-to-be-capitalized-in-spanish#:~:text=Spanish%20does%20NOT%20capitalize%3A&text=%3F-,Calendar%3A%20Names%20of%20the%20days%20of%20the,and%20months%20of%20the%20year.&text=%3F-,Nationality%3A%20Although%20names%20of%20countries%20and%20cities%20are%20capitalized%2C%20words,derived%20from%20them%20are%20not

如果您想做一些与正确的西班牙语本地化不同的事情,您需要获取西班牙语本地化的输出并对其进行操作。您可以简单地使用longDateFormatter.string(from: date).capitalized,它将结果日期字符串中的每个单词大写。

let longDateFormatter = DateFormatter()
longDateFormatter.dateFormat = "EEEE, MMM d"
longDateFormatter.locale = Locale(identifier: "es")

let output = longDateFormatter.string(from: Date()).capitalized
print(output)

产量

维尔内斯,6 月 26 日

但同样,这是用西班牙语显示日期的错误方式。就像用英文显示“friday, june 26”一样错误。

【讨论】:

    猜你喜欢
    • 2017-02-11
    • 2021-01-15
    • 2017-01-28
    • 2023-04-09
    • 2011-05-12
    • 1970-01-01
    • 2016-02-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多