iOS 15下使用Swift新日期格式化器生成自定义格式日期字符串的方法
iOS 15 日期格式化:自定义分隔符为 **
嘿,刚好对iOS 15的新日期格式化API熟得很,你原来的代码用的是.dateTime的预设链式配置,默认会用系统区域的分隔符(比如-),要改成**作为分隔符的话,得自定义格式模板才行,给你两种靠谱的实现方式:
方法一:直接使用自定义格式字符串
这种方式最直接,直接把你想要的格式模板传给formatted方法:
let date = Date() let formattedDate = date.formatted(.init(format: "\(year: .defaultDigits) ** \(month: .twoDigits) ** \(day: .twoDigits)")) // 输出示例:"2022 ** 06 ** 19"
方法二:链式调用结合自定义格式
如果你习惯用.dateTime的链式写法,也可以在最后通过.format()方法替换分隔符:
let date = Date() let formattedDate = date.formatted( .dateTime .year() // 默认输出四位年份 .month(.twoDigits) // 强制两位月份 .day() // 默认输出两位日期 .locale(.init(identifier: "en_US_POSIX")) // 避免系统区域影响格式稳定性 .format(.init(string: "\(year) ** \(month) ** \(day)")) )
小提示
加上locale(.init(identifier: "en_US_POSIX"))很重要,它能确保你的格式不会因为用户的系统区域设置(比如非英文地区)而改变,保证年份始终是四位、月份日期是两位,分隔符完全符合你的要求。
用上面任意一种方法,都能把你给出的日期对象转换成2022 ** 06 ** 19的格式哦~
内容的提问来源于stack exchange,提问作者JAHelia
相关产品推荐
相关产品推荐

