I read this documentation (and other):
It is stated that there is overriding if you do not use special methods for fixed formats. I think the code you provided uses simple methods that have the dateFormat that can be overridden.
As to my original question, I think it is useful for me to use the "dateFormat" property, I mean read it and then set it with another value, but I think I have to use the special case like this
let RFC3339DateFormatter = DateFormatter()
RFC3339DateFormatter.locale = Locale(identifier: "en_US_POSIX")
RFC3339DateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZZZZZ"
RFC3339DateFormatter.timeZone = TimeZone(secondsFromGMT: 0)
I cannot test it now but I hope it works.