无法将字符串转换为日期

时间:2019-03-29 09:29:29

标签: ios swift iphone nsdate xcode10.1

我有一个字符串说,“ 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"

对此有任何帮助。

预先感谢〜

3 个答案:

答案 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)

enter image description here