2017-02-24 215 views
1

我想借助DateFormatter將當前日期轉換爲日期數據類型。我希望日期爲dd/mm/yyyy格式,其數據類型應該是Date不是字符串。 這是我嘗試過的代碼和輸出。如何將系統日期轉換爲日期格式轉換爲日期數據類型

let date = Date() 
print(date)//output - 2017-02-24 13:39:01 +0000 
let dateFormatter = DateFormatter() 
dateFormatter.dateFormat = "dd/MM/yyyy" 
let tempDate = dateFormatter.string(from: date) 
print(tempDate)//output - 24/02/2017 
let currentDate = dateFormatter.date(from: tempDate) 
print(currentDate!)//output - 2017-02-23 18:30:00 +0000 
+0

您沒有指定小時/分鐘/秒,所以一旦將其從字符串轉換回日期,它就會爲0(一天的開始)。但是因爲我猜想,你在印度的UTC時間爲+5:30時區,18:30:00 + 0000是你一天的開始,相當於00:00:00 +5:30。如果你將它轉換回String後,你應該有「24/02/2017」 – Larme

+0

我不想要小時/分鐘/秒這就是爲什麼我指定了「dd/MM/yyyy」 – Ronit

+0

更改dateFormatter時區 dateFormatter。 timeZone = TimeZone(secondsFromGMT:##) –

回答

0

如果您期望的print(currentDate!)輸出等於2017-02-24 00:00:00 +0000設置dateFormatter timeZoneGMT

dateFormatter.timeZone = TimeZone(secondsFromGMT:0) 

更新

我想我明白你的需要。您想從Date對象中截斷時間。

let date = Date() 
print(date) 
let calendar = NSCalendar.current 
let components = calendar.dateComponents([.day, .month, .year], from: date) 
let currentdate = calendar.date(from: components) 
print(currentdate!) 
+0

我不想輸出,我想輸出爲dd/mm/yyyy格式,其數據類型應該是日期而不是字符串。如果我想要你提到的輸出,我已經得到了它。 – Ronit

+0

更新不會從「日期」中截斷時間。這是不可能的。這個更新的代碼所做的是將「Date」更改爲當地時間的午夜。這與「截斷時間」非常相似。 – rmaddy