I have the following string: 20180207T124600Z 
How can I turn this into a Date object?
Here is my current code but it returns nil:<         
        
You can use following function to get date...
func isodateFromString(_ isoDate: String) -> Date? {
    let formatter = DateFormatter()
    formatter.dateFormat = "yyyyMMdd'T'HHmmssZ"
    return formatter.date(from: isoDate)
}
                                                                        You can specify ISO8601 date formate to the NSDateFormatter to get Date:
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyyMMdd'T'HHmmssZ"
print(dateFormatter.date(from: dateString)) //2018-02-07 12:46:00 +0000
                                                                        ISO8601DateFormatter should be something like
yyyy-MM-dd'T'HH:mm:ssZ
as long as your date string is in right format, it won't return nil.
as for formatOptions, it's Options for generating and parsing ISO 8601 date representations according Apple docs
Swift 4
in your example, it should be something like this:
let dateString = "2016-11-01T21:10:56Z"
let dateFormatter = ISO8601DateFormatter()
let date = dateFormatter.date(from: dateString)
let dateFormatter2 = ISO8601DateFormatter()
dateFormatter2.formatOptions = .withFullTime
print(dateFormatter2.string(from: date!))
                                                                        If you have a date such as:
let isoDate = "2018-12-26T13:48:05.000Z"
and you want to parse it into a Date, use:
let isoDateFormatter = ISO8601DateFormatter()
isoDateFormatter.timeZone = TimeZone(secondsFromGMT: 0)
isoDateFormatter.formatOptions = [
    .withFullDate,
    .withFullTime,
    .withDashSeparatorInDate,
    .withFractionalSeconds]
if let realDate = isoDateFormatter.date(from: isoDate) {
    print("Got it: \(realDate)")
}
The important thing is to provide all the options for each part of the data you have. In my case, the seconds are expressed as a fraction.
You need to specify the format options for the ISO8601DateFormatter to match your requirements (year, month, day and time), here is an example below:
//: Playground - noun: a place where people can play
import UIKit
let dateString = "20180207T124600Z"
let dateFormatter = ISO8601DateFormatter()
dateFormatter.formatOptions = [
    .withYear,
    .withMonth,
    .withDay,
    .withTime
]
print(dateFormatter.string(from: Date()))
print(dateFormatter.date(from: dateString))