如何在Swift中将字符串UTC日期转换为NSDate

时间:2015-11-02 18:21:05

标签: swift nsdate nsdateformatter

我的UTC字符串日期如下所示" 2015-10-17T00:00:00.000Z"并希望以这种格式将它们转换为NSDate" 2015年10月12日上午11:19:12"

这是我尝试的路线,但我似乎无法获得正确的dateFormat。

let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = //can't seem to get this right
dateFormatter.timeZone = NSTimeZone(name: "UTC")
let date = dateFormatter.dateFromString("2015-10-17T00:00:00.000Z")

3 个答案:

答案 0 :(得分:15)

我认为这应该有用

let formatter = NSDateFormatter()
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"
let localDate = formatter.dateFromString(date)

答案 1 :(得分:3)

适用于Swift 3.0和最新的Xcode [2017年4月]

let dateString = "2017-Jan-01 12:00:00.250"
        let dateFormatter = DateFormatter()
        dateFormatter.dateFormat = "yyyy-M-dd HH:mm:ss.SSS"
        dateFormatter.locale = Locale.init(identifier: "en_GB")
        let dateObj = dateFormatter.date(from: dateString)

        let date = dateObj
        let formatter = DateFormatter()
        formatter.calendar = Calendar(identifier: .iso8601)
        formatter.locale = Locale(identifier: "en_US_POSIX")
        formatter.timeZone = TimeZone(secondsFromGMT: 0)
        formatter.dateFormat = "yyyy-MM-dd HH:mm:ss.SSSXXXXX"
        let currentDateTime = formatter.string(from: date!)

答案 2 :(得分:-1)

快速4码

let dateString = "2015-10-17T00:00:00.000Z"
let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"
let date = formatter.date(from: dateString)

您可以找到有关日期格式here

的有用信息