如何在 SwiftUI 中将 Date 转换为 DateComponents?

How do I convert Date into DateComponents in SwiftUI?

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

这是我的日期选择器:

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

这是我的通知触发器:

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

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

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