String 如何区分此格式的日期和时间2017-04-11T10:20:46.000+;swift3中的0000

String 如何区分此格式的日期和时间2017-04-11T10:20:46.000+;swift3中的0000,string,date,time,swift3,split,String,Date,Time,Swift3,Split,我有一个日期和时间2017-04-11T10:20:46.000+0000这样的格式它来自后端 所以我没能把日期和时间从这个格式中分离出来 所以我需要的是 从这个2017-04-11T10:20:46.000+0000格式我需要这样 日期:2017-04-11 时间:10:20:46 尽管失败了,我还是尝试了许多解决方案 let dateString = currentUser.dob let dateFormatter = DateFormatter() dateFor

我有一个日期和时间2017-04-11T10:20:46.000+0000这样的格式它来自后端

所以我没能把日期和时间从这个格式中分离出来

所以我需要的是

从这个2017-04-11T10:20:46.000+0000格式我需要这样

日期:2017-04-11 时间:10:20:46

尽管失败了,我还是尝试了许多解决方案

    let dateString = currentUser.dob
    let dateFormatter = DateFormatter()
    dateFormatter.dateFormat = "Yyyy-mm-ddThh:mm:ss +zzzz"
    dateFormatter.locale = Locale.init(identifier: "en_GB")

    let dateObj = dateFormatter.date(from: dateString!)

    dateFormatter.dateFormat = "yyyy-mm-dd"
    print("Dateobj: \(dateFormatter.string(from: dateObj!))")

    let dateFormatter = DateFormatter()
    dateFormatter.dateFormat = "MM-dd-yyyy"
    let dateObj = dateFormatter.date(from: currentUser.dob!)
    print("Dateobj: \(dateObj!)")



    let myDate = currentUser.dob
    let dateFormatter = DateFormatter()
    dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss +zzzz"
    let date = dateFormatter.date(from:myDate!)!
    dateFormatter.dateFormat = "yyyy-MM-dd"
    let dateString = dateFormatter.string(from:date)

    print("\(dateString)")

有人能帮我一下吗…

您的日期格式中遗漏了毫秒。 下面的代码已经在操场上进行了测试,并给出了所需的格式:

let dobString = "2017-04-11T10:20:46.000+0000"
let dobDateFormatter = DateFormatter()
dobDateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"
let dob = dobDateFormatter.date(from: dobString) ?? Date()

let yearMonthDayFormatter = DateFormatter()
yearMonthDayFormatter.dateFormat = "yyyy-MM-dd"
yearMonthDayFormatter.locale = Locale(identifier: "en_GB")
let dateString = yearMonthDayFormatter.string(from: dob)

let hourMinuteSecondFormatter = DateFormatter()
hourMinuteSecondFormatter.dateFormat = "hh:mm:ss"
let timeString = hourMinuteSecondFormatter.string(from: dob)
如果您不在GMT,请确保设置了日期格式化程序的时区