Swift 使用 dateFormat 将日期转换为日期

Swift Convert Date to Date with 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" 日期格式。

有没有办法用一行做到这一点?

Answer to your question: No.

您可以创建一个 date/string 扩展程序,它可以在线解决您的问题。注意,Date 对象是一个日期对象。它没有任何格式(如字符串)。

这对你有帮助吗:

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

(假设一行代码就是一条语句)

如果你只想去掉其他位,只留下年、月、日,你可以只删除字符串中的第一个字符:

let inputString = "2018-05-15T16:37:55+0100"
let outputString = String(inputString.prefix(10))

但是如果你想把日期转换成另一个时区,你需要使用DateFormatter,这需要超过1行代码。

此外,这种子字符串方法可能不适用于其他语言环境,在这些语言环境中,日期的字符数不同。

不,但您始终可以编写一个扩展程序来完成这项工作。

您应该使用一个函数来扩展 Date,该函数获取格式 (yyyy-MM-dd'T'HH:mm:ssZ) 作为参数,创建特殊的 DateFormatter,然后照常转换 [=13] 之间的段落=] 和 Date.

不幸的是没有标准方法。