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

iOS17中日期转字符串出现\U202f Unicode字符问题求助

问题分析与解决

问题根源

  1. 结果中出现PM,说明你实际使用的日期格式字符串大概率包含了a(AM/PM标记符),而非你所说的"yyyy-MM-dd HH:mm:ss"——可能是DateFormate枚举对应值的rawValue配置错误,比如误写为"yyyy-MM-dd hh:mm:ss a"(小写hh是12小时制,搭配a会显示AM/PM)。
  2. \U202f是Unicode窄不换行空格,由DateFormatter根据系统本地化设置自动插入,用于分隔时间与AM/PM标记。

解决方案

方案1:修正日期格式(不需要AM/PM时)

确认DateFormate枚举中对应类型的rawValue严格为:

"yyyy-MM-dd HH:mm:ss"

(大写HH代表24小时制,不会生成AM/PM标记,自然也不会出现额外空格)

方案2:强制使用无本地化特殊字符的Locale(需要AM/PM时)

如果确实需要保留AM/PM标记,可给DateFormatter设置en_US_POSIX locale,避免插入本地化特殊空格:

func toString(formateType type: DateFormate) -> String {
    let dateFormatter = DateFormatter()
    dateFormatter.timeZone = TimeZone(abbreviation: "UTC")
    dateFormatter.locale = Locale(identifier: "en_US_POSIX") // 添加此行
    dateFormatter.dateFormat = type.rawValue
    return dateFormatter.string(from: self)
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 09:14:52