Swift : How to convert String to string with time format?

ios, nsdateformatter, swift

Solution

You need 2 `NSDateFormatter`s, one for `dateFromString`, one for `stringFromDate`

let inFormatter = NSDateFormatter()
inFormatter.locale = NSLocale(localeIdentifier: "en_US_POSIX")
inFormatter.dateFormat = "HH:mm"

let outFormatter = NSDateFormatter()
outFormatter.locale = NSLocale(localeIdentifier: "en_US_POSIX")
outFormatter.dateFormat = "hh:mm"

let inStr = "16:50"
let date = inFormatter.dateFromString(inStr)!
let outStr = outFormatter.stringFromDate(date)
println(outStr) // -> outputs 04:50

Swift 5

let inFormatter = DateFormatter()
inFormatter.locale = NSLocale(localeIdentifier: "en_US_POSIX") as Locale
inFormatter.dateFormat = "hh:mm:ssa"

let outFormatter = DateFormatter()
outFormatter.locale = NSLocale(localeIdentifier: "en_US_POSIX") as Locale
outFormatter.dateFormat = "hh:mm a"
 
let inStr = "16:50"       
let datess = inFormatter.date(from: inStr)!
let outStr = outFormatter.string(from: datess)
print(outstr)

Problem

I have string values include time with formatted "HH:mm" (16:50) i have to convert this value to "hh:mm" format (04:50) as a string in SWIFT i have tried NSDateFormatter like ``` let timeFormat = NSDateFormatter() timeFormat.dateFormat = "hh:mm" var dateFromStr = timeFormat.dateFromString("16:50") var strFromDate = timeFormat.stringFromDate(dateFromStr) ``` but its not working.. Please tell any solution.

Original source