您没有使用正确的值进行转换:您的two
变量始终是数组的第一项.
只需使用twelve
,它代表循环时数组中的每个项目:
for twelve in arrayTimes { let dateFormatter = NSDateFormatter() dateFormatter.dateFormat = "H:mm" let date12 = dateFormatter.dateFromString(twelve)! dateFormatter.dateFormat = "h:mm a" let date22 = dateFormatter.stringFromDate(date12) print(date22) print("output \(twelve)") }
另外,只是一个提示:每次循环迭代时都不需要创建新的格式化程序,只能在循环外部声明格式化程序一次.并且小心使用强制解包的选项,我更喜欢使用if let
或任何其他已知方法guard
.
示例if let
:
let dateFormatter = NSDateFormatter() for twelve in arrayTimes { dateFormatter.dateFormat = "H:mm" if let date12 = dateFormatter.dateFromString(twelve) { dateFormatter.dateFormat = "h:mm a" let date22 = dateFormatter.stringFromDate(date12) print(date22) print("output \(twelve)") } else { // oops, error while converting the string } }