swift 4从ISO字符串到自定义格式的日期?

问题描述:

我有ISO日期从API我想将其转换为另一种自定义日期格式,我在这里检查了一些线程它看起来像我必须使用Date类的扩展,不幸的是,我所有的尝试失败。swift 4从ISO字符串到自定义格式的日期?

这个例子中的日期我有:

2014-10-22T00:00:00+00:00 

我想将其转换为July 2014

我可以正常使用Date类做呢?

及以下什么,我试图做

let formatter = ISO8601DateFormatter() 
let date = formatter.date(from: "2016-08-26T12:39:00Z") 
let string = formatter.string(from: Date()) 

尝试:从SQL Server

let formatter = ISO8601DateFormatter() 
if let date = formatter.date(from: "2014-10-22T00:00:00+00:00") { 
    let string = date.stringDate 
    print(string) // October 2014 
} 

extension Date { 

    var stringDate: String { 
     let formatter = DateFormatter() 
     formatter.dateFormat = "MMMM yyyy" 
     return formatter.string(from: self) 
    } 

} 

你可以得到月和年这样

override func viewDidLoad() { 
    super.viewDidLoad() 

    print(getFormattedDate(date: Date())) 

} 

func getFormattedDate(date: Date) -> String { 
    let dateFormatter = DateFormatter() 
    dateFormatter.dateFormat = "MMMM YYYY" 
    let strMonth = dateFormatter.string(from: date) 
    return strMonth 
} 

我的日期负荷和这样的格式“2018-01-17T03:08:28.158769”下面的代码是完美的工作

let isoDate = "2018-01-17T03:08:28.158769" 
let dateFormatter = DateFormatter() 
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSSSS" 
let date = dateFormatter.date(from:isoDate!)! 
dateFormatter.dateFormat = "d.MMMM.YYYY" 
let displayDate = dateFormatter.string(from: date) 
displayDateInLabel.text = displayDate 

结果 17.2012年1月17日