首页 > 解决方案 > 使用 dateFormat 将日期转换为日期

问题描述

我知道将日期转换为字符串//字符串到日期

let formatter = DateFormatter()
formatter.dateFormat = "yyyy MM dd"

let date = formatter.date ( from: String ) 

或者

let string = formatter.string ( from: Date )

但我想将日期转换为日期格式,如 “yyyy-MM-dd'T'HH:mm:ssZ”到日期格式的“yyyy-MM-dd”

反正有一条线可以做到这一点吗?

标签: iosswiftnsdatensdateformatter

解决方案


回答你的问题:没有

您可以创建一个日期/字符串扩展名,它可以在一行中解决您的问题。注意,Dateobject 是一个日期对象。它没有任何格式(如字符串)。

愿这对您有所帮助:

extension String {


    func convertDateString() -> String? {
        return convert(dateString: self, fromDateFormat: "yyyy-MM-dd'T'HH:mm:ssZ", toDateFormat: "yyyy-MM-dd")
    }


    func convert(dateString: String, fromDateFormat: String, toDateFormat: String) -> String? {

        let fromDateFormatter = DateFormatter()
        fromDateFormatter.dateFormat = fromDateFormat

        if let fromDateObject = fromDateFormatter.date(from: dateString) {

            let toDateFormatter = DateFormatter()
            toDateFormatter.dateFormat = toDateFormat

            let newDateString = toDateFormatter.string(from: fromDateObject)
            return newDateString
        }

        return nil
    }

}

使用一行代码:

let newDateString = "my date string".convertDateString()

推荐阅读