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

2024-10-11  本文已影响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")
}
上一篇 下一篇

猜你喜欢

热点阅读