在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 +0100
和 2020-09-02 23:00:00 +0000
是同一时刻。
我需要使用日期字典,我需要删除关于日期的所有信息,除了: 日 月 年
我创建了这个静态函数:
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 +0100
和 2020-09-02 23:00:00 +0000
是同一时刻。