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

时间:2017-07-17 10:12:16

标签: swift date

我有来自API的ISO日期我希望将其转换为另一种自定义日期格式,我已经检查了一些线程,看起来我必须在Date类上使用扩展,不幸的是,我的所有尝试都失败了。

这个日期的例子我有:

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())

3 个答案:

答案 0 :(得分:2)

试一试:

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)
    }

}

答案 1 :(得分:0)

你可以像这样获得月份和年份

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
}

答案 2 :(得分:0)

我的SQL Server日期加载和格式如下" 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.January.2018