DateFormatter - Foundation | Apple Developer Documentation に記載があります。
Swift
1let RFC3339DateFormatter = DateFormatter()
2RFC3339DateFormatter.locale = Locale(localeIdentifier: "en_US_POSIX")
3RFC3339DateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZZZZZ"
4RFC3339DateFormatter.timeZone = TimeZone(forSecondsFromGMT: 0)
5
6/* 39 minutes and 57 seconds after the 16th hour of December 19th, 1996 with an offset of -08:00 from UTC (Pacific Standard Time) */
7let string = "1996-12-19T16:39:57-08:00"
8let date = RFC3339DateFormatter.dateFromString(string)
IBM Swift Sandbox に動作確認可能なコードを抜粋してみたので、ここでいろいろ試してみると理解が深まると思います。
時刻の差分に関しては、 時刻の差分を取得し、いい感じに表示するDate Extension の考え方を参考してみてください。
記載内容には誤りが含まれているので DateExtension
を利用するなら、 上記記事の参照元 を参考にすると良いです。