“24:00”字符串中的 DateFormatter 返回 Nil

2024-02-22

我似乎无法弄清楚为什么只有“24:00”返回 nil 而不是 12:00AM,而“23:59”则正确返回为 11:59PM。

let dateAsString = "24:00"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "HH:mm"
dateFormatter.locale = NSLocale(localeIdentifier: "en_US_POSIX") as Locale
let date = dateFormatter.date(from: dateAsString)
dateFormatter.dateFormat = "h:mm a"
let Date12 = dateFormatter.string(from: date!)
print(Date12)

您对小时部分使用了错误的日期格式。对于 1-24 之间的值,您必须使用k,如果你有一个前导零,你需要使用kk:

let dateAsString = "24:00"
let dateFormatter = DateFormatter()
dateFormatter.locale = Locale(identifier: "en_US_POSIX")
dateFormatter.dateFormat = "kk:mm"
if let date = dateFormatter.date(from: dateAsString) {
    dateFormatter.dateFormat = "h:mm a"
    let date2 = dateFormatter.string(from: date)
    print(date2) // "12:00 AM\n"
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

“24:00”字符串中的 DateFormatter 返回 Nil 的相关文章

随机推荐