我有一个字符串说,“ 24:00”。我需要转换为日期。我尝试了所有方法。但是总是变得零。
这是我的代码:
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.")
}
错误:致命错误:错误:由于不匹配,日期转换失败 格式。
我尝试将格式更改为:
HH:mm
H:mm
KK:mm (small & caps -> k)
K:mm (small & caps - > k)
但是总是零。我的字符串可以是:
"24.00", "01:00", "20:00" , "03:00"
对此有任何帮助。
预先感谢〜
答案 0 :(得分:0)
时间格式为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
答案 1 :(得分:0)
您可以尝试执行此操作,但是请注意,由于您仅设置了小时/分钟,因此您将没有今天的日期,也不知道您想要的年,月或日。
let dateString = "20:32"
let df = DateFormatter()
df.dateFormat = "HH:mm"
let d = df.date(from: dateString) // "Jan 1, 2000 at 8:32 PM"
答案 2 :(得分:0)
将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)