Ios Swift如何转换日期格式

Ios Swift如何转换日期格式,ios,swift,Ios,Swift,我的日期类型为date,格式为“yyyy-MM-dd HH:MM:ss”,我想将其转换为“yyyy-MM-dd”。我不知道如何实现这一点,因为日期是日期类型 例如: let dateComponents: Date? = dateFormatterGet.date(from: "2019-03-11 17:01:26") 所需输出: 格式类型为“yyyy MM dd”的日期对象 您的日期类型为字符串,而不是日期 使用一个DateFormatter将其转换为日期(检查DateFormatter

我的日期类型为date,格式为“yyyy-MM-dd HH:MM:ss”,我想将其转换为“yyyy-MM-dd”。我不知道如何实现这一点,因为日期是日期类型

例如:

let dateComponents: Date? = dateFormatterGet.date(from: "2019-03-11 17:01:26")

所需输出:

格式类型为“yyyy MM dd”的日期对象


您的日期类型为字符串,而不是日期

使用一个DateFormatter将其转换为日期(检查DateFormatter是否返回nil)

然后使用另一个DateFormatter将日期转换为字符串

请不要使用“dateComponents”作为变量名。您永远不会在代码中接触日期组件。您不需要指定类型,只需“let date=…”或更好的“if let date=…”检查nil

您可以这样使用:

        let now = Date().UTCToLocalDateConvrt(format: "yyyy-MM-dd HH:mm:ss",convertedFormat : "yyyy-MM-dd")
formatDate(yourDate: "2019-03-11 17:01:26")
将以下函数放入日期扩展类:

extension Date {
    func UTCToLocalDateConvrt(format: String,convertedFormat: String) -> Date {
            let dateFormatter = DateFormatter()
            dateFormatter.dateFormat = format
            dateFormatter.timeZone = TimeZone(abbreviation: "UTC")
            let timeStamp = dateFormatter.string(from: self)
            dateFormatter.dateFormat = convertedFormat
            guard let date = dateFormatter.date(from: timeStamp)else{
                return Date()
            }
            return date
        }
}
像这样使用它:

        let now = Date().UTCToLocalDateConvrt(format: "yyyy-MM-dd HH:mm:ss",convertedFormat : "yyyy-MM-dd")
formatDate(yourDate: "2019-03-11 17:01:26")
它将返回一个可选字符串,该字符串可以为零,请确保您安全地打开它(如果为let,则为guard let)


答案基于

去掉第10个字符后的所有内容…我的日期是日期类型,所以这个``formatDate(yourDate:String)``应该接受日期类型而不是字符串类型的对象