簡體   English   中英

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

[英]DateFormatter from "24:00" string returns Nil

我似乎無法弄清楚為什么只有“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"
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM