将字符串日期解析为日期

Parse a string date into date

let date = "2016-05-31T19:00:00+02:00"

let dateFormatterWithTime: DateFormatter {
    let df = DateFormatter()
    df.dateFormat = "yyyy-MM-dd'T'HH:mm:ss Z"
    return df
}
let thisIsNil = dateFormatterWithTime.date(from: date)

格式化程序有什么问题?根据 http://nsdateformatter.com/,它 returns 是一个有效日期,但我从这个

中得到的结果为零

您的 formatter 应该是“yyyy-MM-dd'T'HH:mm:ssZ”。 标记 Z,这意味着 Zone 在您的日期中的第二个和 Zone 之间没有间隙,但在您的格式中有一个 Gap

因此代码应该是

    let date = "2016-05-31T19:00:00+02:00"

    var dateFormatterWithTime: DateFormatter {
        let df = DateFormatter()
        df.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ"
        return df
    }
    let thisIsNil = dateFormatterWithTime.date(from: date)

    print("date \(thisIsNil)")

输出日志:

date Optional(2016-05-31 17:00:00 +0000)