ISO8601 standard date format with fractions of a second and time zone
YYYY-MM-dd'T'HH: mm: ss.SSSZ
let myDate = "2016-06-20T13:01:46.457+02:00" let dateFormatter = NSDateFormatter() dateFormatter.locale = NSLocale(localeIdentifier: "en_US_POSIX") // edited dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ" let date = dateFormatter.dateFromString(myDate)! dateFormatter.dateFormat = "dd/MM/yyyy" let dateString = dateFormatter.stringFromDate(date)
Swift 3:
let myDate = "2016-06-20T13:01:46.457+02:00" let dateFormatter = DateFormatter() dateFormatter.locale = Locale(identifier: "en_US_POSIX") // edited dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ" let date = dateFormatter.date(from:myDate)! dateFormatter.dateFormat = "dd/MM/yyyy" let dateString = dateFormatter.string(from:date)
On macOS 10. 13+ iOS 11+ ISO8601DateFormatter is an alternative as an input formatter
let myDate = "2016-06-20T13:01:46.457+02:00" let inputFormatter = ISO8601DateFormatter() inputFormatter.formatOptions = [.withFullDate, .withFullTime, .withFractionalSeconds] let date = dateFormatter.date(from:myDate)! let outputFormatter = DateFormatter() outputFormatter.locale = Locale(identifier: "en_US_POSIX") outputFormatter.dateFormat = "dd/MM/yyyy" let dateString = dateFormatter.string(from:date)
source share