我正在尝试设置在所有工作日触发的本地通知,即:从星期一到星期五的下午5点,但不在周末触发。
在Apple的文档中,我发现这种方式可以一整天触发通知:
var dateComponents = DateComponents()
dateComponents.calendar = Calendar.current
dateComponents.hour = 17 // 17:00 hours
// Create the trigger as a repeating event.
let trigger = UNCalendarNotificationTrigger(
dateMatching: dateComponents, repeats: true)
但是我无法找出如何排除特定日期,即:星期六和星期日,并将时间设置为下午5点。有线索吗?
答案 0 :(得分:0)
首先使用创建一个日期对象
let date = Date(timeIntervalSinceNow: 3600) // it may be any date whatever you want
要通过日期组件创建触发器,请执行以下操作:
let triggerWeekly = Calendar.current.dateComponents([.weekday,hour,.minute,.second,], from: date)
现在在UNCalendarNotificationTrigger中传递该日期并重复true
let trigger = UNCalendarNotificationTrigger(dateMatching: triggerWeekly, repeats: true)
使用时间创建日期:
let formatter = DateFormatter()
formatter.dateFormat = "yyyy/MM/dd HH:mm"
let someDateTime = formatter.date(from: "2016/10/08 22:31") // put your date and time here
如果特定于语言环境的时间:
formatter.locale = NSLocale(localeIdentifier: "en_US_POSIX")