Swift中如何解析带(EEST)的日期字符串为Date类型?
解决Swift中日期字符串解析失败的问题
你的代码有两个关键问题:
- 小时格式用错了:
hh是12小时制,需要搭配AM/PM标识,但你的时间字符串是24小时制的12:44,应该改用HH - 时区格式不匹配:
zzzz对应完整时区名称(比如Eastern European Summer Time),但你的字符串里是时区缩写EEST,应该用z来匹配
另外还要注意设置locale为en_US_POSIX,避免系统区域设置影响时区缩写的识别。
修正后的完整代码:
let formatter = DateFormatter() formatter.locale = Locale(identifier: "en_US_POSIX") formatter.dateFormat = "dd-MM-yyyy HH:mm (z)" if let ptdate = formatter.date(from: prayer.getString("time")) { // 现在可以正常解析了 print(ptdate) }
内容的提问来源于stack exchange,提问作者Kodr.F
相关产品推荐
相关产品推荐

