微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在Swift中,如何删除Date对象中的小时?

如何解决在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 +01002020-09-02 23:00:00 +0000是同一时刻。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。