Swift UTC时间重新出现本地通知

Swift UTC时间重新出现本地通知,swift,datetime,uilocalnotification,Swift,Datetime,Uilocalnotification,我查看了整个堆栈溢出,只能找到特定时间内重复出现的本地通知。但是,我正在尝试查找有关如何根据UTC时间发出再次发生的本地通知的信息。当您设置重复通知时,其背后的原因将保留到该特定时间 例如,现在UTC的00:00:00是东部时间下午5点,但当几个月后白昼节电时,新的时间将是下午4点。但是,再次发生的通知仍然设置为下午5点。因此,由于日光节约,此通知现在已取消一小时 我正试图找出如何做到这一点,所以本地通知将适当地移动与日光节约。我不确定这是否可行,因为重新发生设置为一个特定的时间,但我很想找到更

我查看了整个堆栈溢出,只能找到特定时间内重复出现的本地通知。但是,我正在尝试查找有关如何根据UTC时间发出再次发生的本地通知的信息。当您设置重复通知时,其背后的原因将保留到该特定时间

例如,现在UTC的00:00:00是东部时间下午5点,但当几个月后白昼节电时,新的时间将是下午4点。但是,再次发生的通知仍然设置为下午5点。因此,由于日光节约,此通知现在已取消一小时


我正试图找出如何做到这一点,所以本地通知将适当地移动与日光节约。我不确定这是否可行,因为重新发生设置为一个特定的时间,但我很想找到更多关于这方面的信息。

默认情况下,当前时区被考虑用于发送本地通知。要在注册本地通知时使用UTC时间,您需要将时区设置为UTC

import UIKit
import UserNotifications

//get the notification center
let center =  UNUserNotificationCenter.current()

//create the content for the notification
let content = UNMutableNotificationContent()
content.title = " Title"
content.subtitle = "SubTitle"
content.body = "jvsvsvasvbasbvfasfv"
content.sound = UNNotificationSound.default

var dateComp = DateComponents()
dateComp.timeZone = TimeZone(identifier: "UTC") // set time zone to UTC
dateComp.day = 1;
dateComp.hour = 08;
dateComp.minute = 00;

let trigger = UNCalendarNotificationTrigger(dateMatching: dateComp, repeats: true)

//create request to display
let request = UNNotificationRequest(identifier: "ContentIdentifier", content: content, trigger: trigger)

//add request to notification center
center.add(request) { (error) in
    if error != nil {
        print("error \(String(describing: error))")
    }
}

上面的代码设置了每天早上UTC时间上午8点的通知。

我明白了,所以我的错误是试图转换为本地时间,而我本来应该将其设置为UTC。这样,它将随着日光节约而适当改变。听起来对吗?啊,谢谢。我想我的理解是错误的。谢谢你的澄清