Search code examples
iosswift3nsdatensdateformatter

Convert date time to time only


I have date string like this:- 2016-12-20T15:26:21+11:00

What kind of DateFormatter (or else) will it required so that I can get the time in device's current time zone.


Solution

  • The input is ISO8601, a suitable solution is DateFormatter. Without specific settings for locale and timeZone the formatter considers the current locale and time zone.

    let dateString = "2016-12-20T15:26:21+11:00"
    let formatter = DateFormatter()
    formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ"
    formatter.locale = Locale(identifier: "en_US_POSIX") // set locale to reliable US_POSIX
    let date = formatter.date(from:dateString)
    formatter.timeStyle = .medium
    formatter.dateStyle = .none
    print(formatter.string(from: date!))