You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让SwiftUI中.date样式的日期文本显示为大写?

解决SwiftUI日期文本无法转为大写的问题

直接给Text添加.textCase(.uppercase)无效的原因是:这个修饰符仅对静态文本内容生效,而通过style: .date插值生成的日期是系统动态格式化的结果,不受textCase影响。

你可以通过以下两种方式解决:

方法1:自定义DateFormatter生成大写日期字符串

先通过日期格式化器将日期转为字符串,再调用uppercased()转为全大写:

// 提前定义格式化器(建议放在视图外部或用lazy初始化)
let dateFormatter: DateFormatter = {
    let formatter = DateFormatter()
    formatter.dateStyle = .medium // 匹配原代码中的.style: .date,可根据需求调整为.short/.long等
    return formatter
}()

// 在视图中使用
Text("Logged On: \(dateFormatter.string(from: theDate).uppercased())")

方法2:利用系统本地化字符串转大写

如果想保留系统自动的本地化日期样式,也可以直接通过系统方法生成字符串后转大写:

Text("Logged On: \(DateFormatter.localizedString(from: theDate, dateStyle: .medium, timeStyle: .none).uppercased())")

两种方法都是先获取日期的字符串表示,再主动转为全大写,绕开textCase只作用于静态文本的限制。

内容的提问来源于stack exchange,提问作者Ben Long

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 03:51:02