美文网首页
iOS 15.4 版本更新后,12小时制时间格式化失败问题

iOS 15.4 版本更新后,12小时制时间格式化失败问题

作者: 番茄炒西红柿啊 | 来源:发表于2024-10-11 16:38 被阅读0次

iOS系统版本 15.4之前版本,无论用户将手机设置成12小时制还是24小时制,代码统一使用24小时制格式处理是没有问题的。

let dateStr = "2024-10-10 02:00"
let dateFormat = DateFormatter()
dateFormat.dateFormat = "yyyy-MM-dd HH:mm"
if let date = dateFormat.date(from: dateStr) {
    debugPrint(date)
} else {
    debugPrint("nil")
}

上述代码在iOS 15.4之前可以正常运行。但是在iOS 15.4之后,创建date会失败,返回的是nil。
通过12小时制使用”hh“,24小时制使用”HH“,这样分开处理不现实。查阅相关资料后发现为DateFormatter指定具体的locale即可:

let dateStr = "2024-10-10 02:00"
let dateFormat = DateFormatter()
dateFormat.dateFormat = "yyyy-MM-dd HH:mm"
dateFormat.locale = Locale.init(identifier: Locale.current.identifier)
if let date = dateFormat.date(from: dateStr) {
    debugPrint(date)
} else {
    debugPrint("nil")
}

相关文章

网友评论

      本文标题:iOS 15.4 版本更新后,12小时制时间格式化失败问题

      本文链接:https://www.haomeiwen.com/subject/ggagrjtx.html