如何解决在Swift中,如何删除Date对象中的小时?
我需要使用日期字典,并且我需要删除有关日期的所有信息,但以下情况除外: 天 月 年
我创建了此静态函数:
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
是同一时刻。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。