如何使DateComponentsFormatter.string(from :)的结果的第一个单词大写?

时间:2018-10-10 13:23:44

标签: ios swift foundation dateformatter

在我的iOS项目中,我有一个函数将带有“秒”后缀的整数值转换为字符串:

func secondsToString(_ seconds: Int) -> String {    
    let formatter = DateComponentsFormatter()
    formatter.unitsStyle = .full
    formatter.allowedUnits = [.second]
    return formatter.string(from: DateComponents(second: seconds)) ?? ""
}

这就是我所说的:

print(secondsToString(10)) // Output is "10 seconds"
print(secondsToString(1)) // Output is "1 second"

但是我需要将secondsToString的结果的首字母大写,如下所示:

print(secondsToString(10)) // Output is "10 Seconds"
print(secondsToString(1)) // Output is "1 Second"

如何解决此问题?我应该更改DateComponentsFormatter的某些属性吗?

1 个答案:

答案 0 :(得分:1)

只需在格式化字符串的末尾添加update table_1 a set expense_v1 = expense * 1.05 where exists ( select null from table2 b where a.address_id = b.address_id and b.description_state = 'lollyland' )

.capitalized

注意::该解决方案将大写从该方法返回的所有单词。对于您的用例,这应该足够好,因为即使您添加更多的时间单位,如果我将一个大写,也希望将它们全部大写。


因此,如果要以某种方式更改结果,并且只希望将第一个单词大写,则可以尝试以下操作:(第一个单词表示包含字母的第一个单词)

func secondsToString(_ seconds: Int) -> String {
    let formatter = DateComponentsFormatter()
    formatter.unitsStyle = .full
    formatter.allowedUnits = [.second]
    return formatter.string(from: DateComponents(second: seconds))?.capitalized ?? ""
}