如何使用WWDC21新增Foundation格式器将整数格式化为分钟单位展示
你遇到的编译报错是因为你调用的.components格式风格原生是用于Range<Date>类型的时间间隔格式化,不能直接作用在Int类型上,所以会提示类型不匹配错误。
要实现你的需求,只需要先把整数分钟值封装为DateComponents类型,再调用新版格式化API即可,示例代码如下:
let value: Int = 20 // 先封装为分钟单位的DateComponents let minuteComponents = DateComponents(minute: value) // 调用新版格式化方法 Text(minuteComponents.formatted(.components(style: .abbreviated, fields: [.minute]))) // 最终输出效果:20 min
如果需要简化写法也可以直接写成一行链式调用:
Text(DateComponents(minute: 20).formatted(.components(style: .abbreviated, fields: [.minute])))
你可以根据显示需求替换style参数值调整输出格式:
style: .abbreviated:输出缩写格式20 min(符合你的需求)style: .short:输出短格式20 minsstyle: .long:输出完整格式20 minutes
内容的提问来源于stack exchange,提问作者TruMan1
相关产品推荐
相关产品推荐

