ios - 在所有工作日触发本地 iOS 通知
问题描述
我正在尝试设置在所有工作日触发的本地通知,即:从周一到周五下午 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 点。有什么线索吗?
解决方案
首先创建一个日期对象
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")
推荐阅读
- java - java spring和hibernate如何将日文字符保存到Mysql中?
- python - 如何每分钟重新采样不均匀的时间戳
- amazon-s3 - Hive 用新的 s3 位置覆盖表
- cakephp - 如何在 cakephp 中使用 Html->control() 添加类以选择标签
- flutter - firebase_ml_vision 包可以识别西里尔字母吗?
- db2 - 从 H2 数据库和 DB2 中选择 NEXTVAL
- linux - 尝试使用 npx 创建反应应用程序时收到各种警告和错误
- html - overflow-x 滚动显示:flex,最后一个子项不显示父 div 填充和边距
- docker - Dockerfile 正确构建但 ADD 失败
- system-verilog - 在 Specman E 中实现 System verilog 的 $value$plusargs() 系统函数