无法将字符串转换为日期

not able to convert string to date

我有一个字符串,“24:00”。我需要转换为 date.I 尝试了所有 ways.But 总是得到零。

这是我的代码:

let timeformat = DateFormatter()
timeformat.dateFormat = "K:mm"
timeformat.locale = Locale(identifier: "en_US_POSIX")
guard let endtime = dateFormatter.date(from: selCloseTime!) else {
                fatalError("ERROR: Date conversion failed due to mismatched format.")
            }

error: Fatal error: ERROR: Date conversion failed due to mismatched format.

我尝试将格式更改为:

HH:mm
H:mm
KK:mm (small & caps  -> k)
K:mm (small & caps - > k)

但总是得到零。我的字符串可以是:

"24.00", "01:00", "20:00" , "03:00"

对此有任何帮助。

提前致谢~

时间格式 24 小时制到 12 小时制

let dateAsString = "13:15"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "HH:mm"

let date = dateFormatter.date(from: dateAsString)
dateFormatter.dateFormat = "h:mm a"
let Date12 = dateFormatter.string(from: date!)
print("12 hour formatted Date:",Date12) // 1:15 PM

您可以试试这个,但请注意您不会有今天的日期,因为您只设置了 hour/minute,它不知道您想要的年月日。

let dateString = "20:32"
let df = DateFormatter()
df.dateFormat = "HH:mm"
let d = df.date(from: dateString) // "Jan 1, 2000 at 8:32 PM"

timeformat.dateFormat = "K:mm" 更改为 timeformat.dateFormat = "kk:mm" 并查看此输出。

let selCloseTime = "20:00"
let timeformat = DateFormatter()
timeformat.dateFormat = "kk:mm"
timeformat.locale = Locale(identifier: "en_US_POSIX")
guard let endtime = timeformat.date(from: selCloseTime) else {
    fatalError("ERROR: Date conversion failed due to mismatched format.")
}
print(endtime)