从Swift中的String到NSDate

Sar*_*cci 3 string format date nsdate swift

我有一个string包含date格式为: 星期四,2014年9月4日10:50:12 +0000

你知道怎样把它转换成: 04-09-2014 (dd-MM-yyyy)

当然,使用Swift Thanks

csc*_*sch 18

如果上述方法不起作用,这应该可以解决问题:

let formatter = DateFormatter()
formatter.locale = Locale(identifier: "US_en")
formatter.dateFormat = "E, dd MMM yyyy HH:mm:ss Z"
let date = formatter.date(from: "Thu, 04 Sep 2014 10:50:12 +0000")
Run Code Online (Sandbox Code Playgroud)


Isu*_*uru 7

我知道这个问题的答案已被接受,但该答案中显示的方法并没有以dd-MM-yyyy的格式输出日期.所以我会发布这个,所以有人可能觉得它很有用.

Swift的一个很酷的功能是扩展.因此,我将把它作为一个扩展来创建,以便它可以重用.

NSDate为此创建扩展并将此代码放入其中.

import Foundation

extension NSDate {

    convenience init(dateString: String) {
        let dateStringFormatter = NSDateFormatter()
        dateStringFormatter.dateFormat = "E, dd MMM yyyy HH:mm:ss Z"
        dateStringFormatter.timeZone = NSTimeZone(name: "GMT")
        let date = dateStringFormatter.dateFromString(dateString)

        self.init(timeInterval:0, sinceDate:date!)
    }

    func getDatePart() -> String {
        let formatter = NSDateFormatter()
        formatter.dateFormat = "dd-MM-yyyy"
        formatter.timeZone = NSTimeZone(name: "GMT")

        return formatter.stringFromDate(self)
    }
}
Run Code Online (Sandbox Code Playgroud)

这就是你如何使用它.

NSDate(dateString: "Thu, 04 Sep 2014 10:50:12 +0000").getDatePart()
Run Code Online (Sandbox Code Playgroud)

输出:04-09-2014

您可以更改两个函数中的格式以接受和输出各种格式的日期.