我從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