如何在ios swift中解析String date to date对象?

时间:2017-06-08 14:47:24

标签: ios iphone

我正在将服务器的日期解析为自定义格式: - 这是日期: - “8/9/2017 3:58:00 AM”但它没有使用这种格式“MM / dd / yyyy hh:mm:ss a”解析为Date对象,因为显然是月,日和小时是个位数

据我所知,它应该自动解析,因为Android的DateFormat会解析相同的日期。 这是我正在使用的代码片段: -

display: grid

此函数返回null

1 个答案:

答案 0 :(得分:0)

您的代码应该可以使用,但您还应该添加一些错误检查。

试试这个(它将在Playground中运行):

// returns an empty string "" if the date format is invalid
func getDateString(_ dateString:String) -> String {

    var strResult = ""

    let dateFormatter = DateFormatter()
    dateFormatter.dateFormat = "M/dd/yyyy hh:mm:ss a"

    if let date = dateFormatter.date(from: dateString) {
        dateFormatter.dateFormat = "dd MMM yyyy"
        strResult = dateFormatter.string(from: date)
    }

    return strResult

}

let dateString = getDateString("8/9/2017 3:58:00 AM")

print(dateString)   // prints "09 Aug 2017"

如果您将“源”字符串更改为无效的日期/时间 - 例如将月份从8 to 18更改为小时或从3 to 13更改小时 - 您将看到返回的值为空字符串。