Search code examples
swifttimensdateformatter

am/pm time to 24 hour format


I am trying to convert an am/pm format time to a 24 hour format time

6:35 PM to 18:35

I tried this piece of code on playground but it doesn't seem to work if I put the time alone

let dateAsString = "02/12/15, 6:35 PM"
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "HH"
let date = dateFormatter.dateFromString(dateAsString) //returns nil

Does anyone know how to accomplish this?


Solution

  • Just convert it to a date using NSDateFormatter and the "h:mm a" format and convert it back to a string using the "HH:mm" format. Check out this date formatting guide to familiarize yourself with this material.

    enter image description here

    let dateAsString = "6:35 PM"
    let dateFormatter = NSDateFormatter()
    dateFormatter.dateFormat = "h:mm a"
    dateFormatter.locale = Locale(identifier: "en_US_POSIX") // fixes nil if device time in 24 hour format
    let date = dateFormatter.dateFromString(dateAsString)
    
    dateFormatter.dateFormat = "HH:mm"
    let date24 = dateFormatter.stringFromDate(date!)