如何将字符串转换为Swift 3中没有时间的日期?

问题描述:

我已尝试将日期如2017-02-11字符串转换为日期,但结果让我回到这样的事情2017-02-10 16:00:00 +0000。我正在使用下面的代码。如何将字符串转换为Swift 3中没有时间的日期?

let localDate = dateFormatter.string(from: date) //2017-02-11 

    let dateFormatter2 = DateFormatter() 
    dateFormatter2.dateFormat = "yyyy-MM-dd" 

    let selectedDate = dateFormatter2.date(from: localDate) 
    print("Did Select \(selectedDate)") // 2017-02-10 16:00:00 +0000 
+0

您可以显示得到给定Date的第一时刻日期没有显示时间,但没有日期没有时间 –

+0

日期是正确的。 'print'以UTC显示日期,您的本地时区显然是UTC + 8 – vadian

let dateWithTime = Date() 

let dateFormatter = DateFormatter() 
dateFormatter.dateStyle = .short 

let date = dateFormatter.string(from: date) // 2/10/17 

这将正确地格式化,但是这将是显示仅供参考。所有Date都有时间。

这是真的,没有Date没有时间元素,但如果你需要的东西,你可以用它来比较整个日子里,你可以使用

Calendar.current.startOfDay(for: dateWithTime)