iOS SwiftUI中如何将DatePicker选中日期转为指定格式字符串
SwiftUI DatePicker日期转指定格式字符串解决方案
你可以通过DateFormatter(兼容全iOS版本)或者iOS 15+的FormatStyle新API,把包含时间的Date对象转换成仅日期部分的字符串。
方法一:使用DateFormatter(兼容所有iOS版本)
建议复用DateFormatter实例,避免频繁创建影响性能:
// 定义全局或ViewModel内的格式化器(只初始化一次) let dateFormatter: DateFormatter = { let formatter = DateFormatter() formatter.dateFormat = "yyyy-MM-dd" // 如果需要和UTC时区对齐,可设置时区,否则会用设备本地时区 formatter.timeZone = TimeZone(identifier: "UTC") return formatter }() // 转换选中的日期为目标字符串 let targetDateString = dateFormatter.string(from: vm.user.movingdate) print(targetDateString) // 输出:2023-05-19
如果要在SwiftUI视图中直接显示:
Text(dateFormatter.string(from: vm.user.movingdate))
方法二:使用FormatStyle(iOS 15+ 推荐)
iOS 15及以上系统可以用更简洁的原生API,无需手动创建DateFormatter:
// 方式1:直接指定日期组件 let targetDateString = vm.user.movingdate.formatted(.dateTime.year().month().day()) // 方式2:明确省略时间部分 let targetDateString = vm.user.movingdate.formatted(date: .numeric, time: .omitted) // 方式3:生成ISO8601风格的日期字符串 let targetDateString = vm.user.movingdate.formatted(.iso8601.year().month().day())
以上两种方法都能得到你需要的"2023-05-19"格式字符串。
内容的提问来源于stack exchange,提问作者S SASIDHARAN
相关产品推荐
相关产品推荐

