Swift convert unix time to date and time
To get the date to show as the current time zone I used the following.
if let timeResult = (jsonResult["dt"] as? Double) { let date = NSDate(timeIntervalSince1970: timeResult) let dateFormatter = NSDateFormatter() dateFormatter.timeStyle = NSDateFormatterStyle.MediumStyle //Set time style dateFormatter.dateStyle = NSDateFormatterStyle.MediumStyle //Set date style dateFormatter.timeZone = NSTimeZone() let localDate = dateFormatter.stringFromDate(date)}
Swift 3.0 Version
if let timeResult = (jsonResult["dt"] as? Double) { let date = Date(timeIntervalSince1970: timeResult) let dateFormatter = DateFormatter() dateFormatter.timeStyle = DateFormatter.Style.medium //Set time style dateFormatter.dateStyle = DateFormatter.Style.medium //Set date style dateFormatter.timeZone = self.timeZone let localDate = dateFormatter.string(from: date) }
Swift 5
if let timeResult = (jsonResult["dt"] as? Double) { let date = Date(timeIntervalSince1970: timeResult) let dateFormatter = DateFormatter() dateFormatter.timeStyle = DateFormatter.Style.medium //Set time style dateFormatter.dateStyle = DateFormatter.Style.medium //Set date style dateFormatter.timeZone = .current let localDate = dateFormatter.string(from: date) }
It's simple to convert the Unix timestamp into the desired format. Lets suppose _ts is the Unix timestamp in long
let date = NSDate(timeIntervalSince1970: _ts)let dayTimePeriodFormatter = NSDateFormatter()dayTimePeriodFormatter.dateFormat = "MMM dd YYYY hh:mm a" let dateString = dayTimePeriodFormatter.stringFromDate(date) print( " _ts value is \(_ts)") print( " _ts value is \(dateString)")