我有一個字符串從服務器得到 我把這個字符串轉換成NSDate由這個甲酸鹽。轉換UTC NSDate到本地NSDate不工作
class func convertUTCDateToLocateDate(dateStr:String) -> NSDate{
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"
dateFormatter.timeZone = NSTimeZone(name: "UTC")
let date = dateFormatter.dateFromString(dateStr)
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z"
dateFormatter.timeZone = NSTimeZone.localTimeZone()
let timeStamp = dateFormatter.stringFromDate(date!)
let dateForm = NSDateFormatter()
dateForm.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"
dateForm.timeZone = NSTimeZone.localTimeZone()
let dateObj = dateForm.dateFromString(timeStamp)
return dateObj!
}
假設參數字符串爲「2016-11-05T12:00:00.000Z」但是當我轉換這個字符串,並返回一個NSDate
對象不按我的本地時間更改時間。我在timeStamp
字符串中獲取我的正確時間(在上面的代碼中)。但是當我嘗試將那個timeStamp
字符串轉換爲NSDate時,它再次顯示了我作爲參數得到的日期和時間。
不要在日期格式中引用'Z'。你不想要一個字面的'Z'。你想把它當作時區來對待。 – rmaddy