2017-06-16 43 views
-2

我有一個DateFormatter,我將一個日期字符串傳遞給它,意圖轉換爲日期。問題是,這個最後的日期總是會有3個小時的時間。這是我的代碼:DateFormatter在日期結果中添加3小時

let taskDateFormatter = DateFormatter() 
taskDateFormatter.locale = Locale.current      
taskDateFormatter.dateFormat = "dd/MM/yyyy HH:mm:ss" 
print(task!.logData!)// this print 016/06/2017 10:25:12 
let date = taskDateFormatter.date(from: task!.logData!) 
print(date!)// this print 2017-06-16 13:25:12 +0000 

我在做什麼錯?

+4

沒有錯誤。您處於GMT-3時區,並且'(NS)Date'始終使用UTC進行打印(如「+0000」所示)。 –

+0

可能的重複https://stackoverflow.com/questions/6229024/nsdate-format-outputting-wrong-date或https://stackoverflow.com/questions/29407599/nsdateformatter-return-wrong-date-swift –

+0

可能的重複[NSDate格式輸出錯誤日期](https://stackoverflow.com/questions/6229024/nsdate-format-outputting-wrong-date) – Stonz2

回答

0

嘗試添加

taskDateFormatter.timeZone = NSTimeZone(name: "UTC") 
+0

這項工作!謝謝!!!! –

+0

除非被解析的字符串確實是UTC格式,否則不要這樣做。不要這樣做只是爲了改變打印日期的輸出。 – rmaddy