【发布时间】:2020-09-03 10:47:55
【问题描述】:
我需要使用日期字典,并且我需要删除有关日期的所有信息,除了: 天 月 年份
我创建了这个静态函数:
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
我的功能应该改变什么?
【问题讨论】:
-
最好的解决方案是始终使用相同的时间,例如通过
let startOfDay = Calendar.current.startOfDay(for: day) -
但它会创建一个小时数不为 00 的时间!并且需要除日月和年之外的日期都为零
-
那是因为时区,重要的是所有日期都得到相同的时间。
-
@Wahib 对于时间不敏感的日期,您应该使用中午而不是午夜。并非所有日期都从凌晨 12 点开始stackoverflow.com/questions/44009804/…