首页 > 解决方案 > 如何在 SwiftUI 中将 Date 转换为 DateComponents?

问题描述

我想在用户从 DatePicker 中选择时设置每日通知,但我不知道如何将选定的小时和分钟转换为 DateComponents 以匹配 UNCalendarNotificationTrigger。

这是我的日期选择器:

DatePicker("Choose time of notif", selection: $notifTime, displayedComponents: .hourAndMinute)

这是我的通知触发器:

var dateComponents = DateComponents()
dateComponents = notifTime
let trigger = UNCalendarNotificationTrigger(dateMatching: dateComponents, repeats: true)

标签: swiftdatepickernotificationsuikitswiftui

解决方案


您只需要使用 APIdateComponentsdate属性中获取Calendar,这需要重复。因此,在这种情况下,小时和分钟每天都在重复,因此您可以这样做:

var notifTime: Date
let dateComponents = Calendar.current.dateComponents([.hour, .minute], from: notifTime)
let trigger = UNCalendarNotificationTrigger(dateMatching: dateComponents, repeats: true)

推荐阅读