2017-08-11 54 views
-7

我想將日期「01/12/2017」從字符串轉換爲日期格式,但在轉換後給我這個格式日期2017-12-01 00:00: 00 +0000。 但我只想要這種格式「01/12/2017」的日期。這裏是我的代碼。從字符串到日期格式的日期更改格式3

func onlyDate(date: String) -> Date { 
    let dateFormatter = DateFormatter() 
    dateFormatter.dateFormat = "dd/MM/yyyy" 
    dateFormatter.timeZone = TimeZone(abbreviation: "GMT+0:00") 
    let date1 = dateFormatter.date(from: date) 
    print(date1!) 
    return date1! 
    } 
+0

一個日期僅僅是一個時間點。它沒有「格式」。您需要使用DateFormatter根據需要顯示它。順便說一句,如果你想要一個時間不敏感的日期,你應該使用中午,而不是設置時區爲gmt。 –

+1

可能重複[轉換字符串到DATE類型在Swift 3](https://stackoverflow.com/questions/41435857/convert-string-to-date-type-in​​-swift-3) –

+0

我試過代碼從這個鏈接也沒有得到適當的日期。它給了我這個結果「2017-01-01 00:12:00 +0000」。我將格式更改爲dateFormatter.dateFormat =「dd/mm/yyyy」。 – manku

回答

0

基本上,Date類對象不適用于格式。那只是爲了得到日期的實例,它有自己的格式。

如果你想格式化它,你只能使用字符串格式化它,而不是日期實例。

0

試試這個:

let dateFormatters:DateFormatter = DateFormatter() 
dateFormatters.dateFormat = "dd/MM/yyyy" 
dateFormatters.locale = Locale.current 

let date: Date = Date() 
print("Current Date : \(date)") 
print("Format Date as you want : \(dateFormatters.string(from: date))") 

您可以使用dateFormatters.date(from: yourString)太多,如果你想從String轉換成Date