iOS:dateformatter in swift return nil

时间:2015-05-29 12:21:42

标签: ios swift nsdateformatter

我在我的应用中有这段代码

service.requestLastDate{ (response) -> () in

        var str = response as NSString

            var d = str.stringByReplacingOccurrencesOfString("\"", withString: "")

            println("D \(str)") // D 2015-05-25 08:13:33

            var dateFormatter = NSDateFormatter()
            dateFormatter.dateFormat = "yyyy-MM-dd HH:mm"

            var date_formatted = dateFormatter.dateFromString(d)

            println("DATE FORMATTED \(date_formatted)") // is NIL

使用此代码date_formatted永远为零。 如果我打印在consolle" d"结果是" 2015-02-12 08:15:16",这个字符串是一个真正的字符串。 如果我尝试使用字符串"示例"我得到了一个正确的date_formatted。 发生什么事? 我无法理解。 我只是尝试更改NSLocale和dateFormatter的时区,但我得到了相同的结果。

这是请求

func requestLastDate(completion:(response:NSString)->()){

        my_req_date = request(.GET, "http://example.com/current_date")
            .responseString { (_, _, string, error) in

            println(" server \(string!)") //server "2015-05-25 08:13:33"
            completion(response: string!)

        }
    }

2 个答案:

答案 0 :(得分:1)

讨厌打破它:)

认为可能是:

"yyyy-MM-dd HH:mm:ss"

"yyyy-MM-dd HH:mm"

答案 1 :(得分:0)

检查您的respsonse是否转换为正确的日期格式字符串。因为如果我试试这个,它就有效:

var response:AnyObject?
response = "2015-03-17 23:34:12"

if let date:AnyObject = response {

    var d = date as! String
    var example = "2015-03-17 23:34:12"

    var dateFormatter = NSDateFormatter()
    dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"

    var date_formatted = dateFormatter.dateFromString(d)
}