我从XML文件转换日期字段,这些日期存储在“yyyyMMddHHmmss”格式。当我使用DateFormmater的日期函数时,我没有得到正确的时间。所以对于dateString“20150909093700”,它返回“2015-09-09 13:37:00 UTC”而不是“2015-09-09 09:37:00”。在存储Core Data NSDate字段之前,我正在进行这种转换。从dateformatter获取错误时间
这是我的代码:
static func stringToDate(DateString dateString: String) -> NSDate? {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyyMMddHHmmss"
dateFormatter.locale = Locale.init(identifier: "en_US_POSIX")
dateFormatter.timeZone = TimeZone(abbreviation: "EST")
if let date = dateFormatter.date(from: dateString) {
return date as NSDate?
}
return nil
}
您正在添加时区'dateFormatter.timeZone = TimeZone(缩写:“EST”)'计算日期时使用此时区的偏移量。只是UTC时区。 – rckoenes
@rckoenes OP的代码很好。他们只是误解了看'日期'值的输出。这已经在这里覆盖了很多次。 – rmaddy
@rmaddy第二次阅读,你可能是对的。 – rckoenes