如何将字符串转换为日期,而不会丢失格式

时间:2015-11-06 16:21:22

标签: ios swift date

我有这个日期2015-11-06T18:00:00-0500

我的格式为yyyy-MM-dd'T'HH:mm:ssZ

我试试

let startDateString = "2015-11-06T18:00:00-0500"
let format = NSDateFormatter()
format.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ"

let startDateBtnEnd = format.dateFromString(startDateString)
println("startDateBtnEnd 2 \(startDateBtnEnd)")

但是日志是 startDateBtnEnd 2 Optional(2015-11-07 00:00:00 +0000)

1 个答案:

答案 0 :(得分:1)

NSDate以UTC格式存储日期。您可以在任何时区将其转换为同一时刻。但是在失去太多神经元以将NSDate从一个时区转换为另一个时区之后,我决定将我自己的扩展名添加到NSDate,以便在当地时区中将其打印出来:

extension NSDate {
    func toString(timeZone: NSTimeZone = NSTimeZone.localTimeZone()) -> String {
        let formatter = NSDateFormatter()
        formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ"
        formatter.timeZone = timeZone

        return formatter.stringFromDate(self)
    }
}

// Usage:
print("startDateBtnEnd 2 \(startDateBtnEnd.toString())")