我似乎无法弄清楚为什么只有“ 24:00”返回nil而不是12:00 AM,而“ 23:59”则正确返回11:59 PM。
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)
答案 0 :(得分:4)
您为小时部分使用了错误的日期格式。对于1-24之间的值,您必须使用k
,如果您使用前导零,则需要使用kk
:
let dateAsString = "24:00"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "kk:mm"
dateFormatter.locale = Locale(identifier: "en_US_POSIX")
if let date = dateFormatter.date(from: dateAsString) {
dateFormatter.dateFormat = "h:mm a"
let date2 = dateFormatter.string(from: date)
print(date2) // "12:00 AM\n"
}