我有一个字符串从服务器得到 我把这个字符串转换成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