检查字符串的日期格式是否符合要求的格式

Check the date format of string if it's according to required format or not

我在 Java 中问过同样的问题 here, swift 有可能吗?

func stringToDate(str: String) -> Date{

    let dateFormatter = DateFormatter()
    dateFormatter.dateFormat = "dd/MM/yyyy"

    //check validation of str 

    return date
}

就像Java一样,检查它是否可以正确解析

let dateFormatterGet = DateFormatter()
dateFormatterGet.dateFormat = "yyyy-MM-dd hh:mm:ss"
let someDate = "string date"

if dateFormatterGet.date(from: someDate) != nil {
    // valid format
} else {
    // invalid format
}

在 swift3 中:

func stringToDate(str: String) -> Date{

    let dateFormatter = DateFormatter()
    dateFormatter.dateFormat = "dd/MM/yyyy"

    guard let date = dateFormatter.date(from: str){
        return Date()
    }

    return date

}

对于Swift 4,语法有一点变化:

 func isValidDate(dateString: String) -> Bool {
    let dateFormatterGet = DateFormatter()
    dateFormatterGet.dateFormat = "yyyy-MM-dd hh:mm:ss"
    if let _ = dateFormatterGet.date(from: dateString) {
        //date parsing succeeded, if you need to do additional logic, replace _ with some variable name i.e date
        return true
    } else {
        // Invalid date
        return false
    }
}

Swift 5

let dateFormatterGet = DateFormatter()
dateFormatterGet.dateFormat = "yyyy-MM-dd hh:mm:ss"
let someDate = "string date"

if dateFormatterGet.date(from: someDate!) != nil {

} else {
    // invalid format
}