如何将这个日期时间从日期转换?

日期:2016-02-29 12:24:26 至2016年2月29日

到目前为止,这是我的代码,它返回一个nil值:

let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "MM-dd-yyyy"
dateFormatter.timeZone = NSTimeZone(name: "UTC")
let date: NSDate? = dateFormatter.dateFromString("2016-02-29 12:24:26")
print(date)

当前回答

Swift 3与日期扩展

extension Date {
    func string(with format: String) -> String {
        let dateFormatter = DateFormatter()
        dateFormatter.dateFormat = format
        return dateFormatter.string(from: self)
    }
}

然后你可以这样使用它:

let date = Date()
date.string(with: "MMM dd, yyyy")

其他回答

Swift 3与日期扩展

extension Date {
    func string(with format: String) -> String {
        let dateFormatter = DateFormatter()
        dateFormatter.dateFormat = format
        return dateFormatter.string(from: self)
    }
}

然后你可以这样使用它:

let date = Date()
date.string(with: "MMM dd, yyyy")

Swift 3版本用新的Date对象代替NSDate:

let dateFormatterGet = DateFormatter()
dateFormatterGet.dateFormat = "yyyy-MM-dd HH:mm:ss"

let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "MMM dd,yyyy"

let date: Date? = dateFormatterGet.date(from: "2017-02-14 17:24:26")
print(dateFormatter.string(from: date!))

编辑:在mitul-nakum建议之后

在iOS 15中使用如下代码:

extension Date {
    var string: String {
        if #available(iOS 15.0, *) {
            return self.formatted(date: .complete, time: .complete)
        } else {
            return self.description
        }
    }
}

斯威夫特3

let date : Date = Date()
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "MMM dd, yyyy"
let todaysDate = dateFormatter.string(from: date)

Swift版本:5.6 +以上

DateFormatter的DateFormatter属性用于用自定义字符串模式格式化日期。

let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "MMM dd, yyyy"
    
let date = dateFormatter.string(from: datePicker.date)
print(date)
//Feb 28, 2022

如果你想要任何不应该格式化和打印的东西,那么在这个单词周围使用单引号。像;“在”

dateFormatter.dateFormat = "MMM dd, yyyy 'at' hh:MM a"
// May 29, 2022 at 12:05 PM

这些都是格式化日期、时间和时区的可能模式。