在Swift,如何删除日期对象中的小时数?

In Swift, how to delete hours in a Date object?

我需要使用日期字典,我需要删除关于日期的所有信息,除了: 日 月 年

我创建了这个静态函数:

let day = Date() // it's an example
print(day)

func dateSimplificator(WithDate date: Date) -> Date {
    let formatterD = DateFormatter()
    formatterD.dateFormat = "dd MM yyyy"
    let dayString = formatterD.string(from: date)
    let reFormatterD = DateFormatter()
    reFormatterD.dateFormat = "dd MM yyyy"
    let dayFormatted = reFormatterD.date(from: dayString)!
    //print(dayFormatted)
    return dayFormatted
}

print(dateSimplificator(WithDate: day))

当我打印时,我得到: 2020-09-03 10:40:25 +0000 2020-09-02 23:00:00 +0000

这不是我想要的。 我需要这样的东西:

日期 => 2020-09-03 10:40:25 +0000 当我将静态函数与日期一起使用时,我必须像这样获得一个新日期: 2020-09-02 00:00:00 +0000

我的功能应该改变什么?

首先,您的方法可以在没有日期格式化程序的情况下编写

func dateSimplificator(with date: Date) -> Date {
    return Calendar.current.startOfDay(for: date)
}

其次,日期格式化程序考虑本地时区 - 在您的情况下显然是 UTC+0100 - 但 print 以 UTC 显示日期。 2020-09-03 00:00:00 +01002020-09-02 23:00:00 +0000 是同一时刻。