Desencadenar UNNotification en las zonas horarias

No puedo hacer que una notificación local de iOS 10 (UNNotification) se active correctamente en zonas horarias.

En la zona horaria +10 horas, quiero que se dispare a las 17:00:00, y progtwigrlo.

Más tarde, cuando miro qué notifications están progtwigdas, obtengo la siguiente date de disparo, aún en la zona horaria +10 horas, dirá las 17:00:00.

Pero cuando cambio la zona horaria a más de 8 horas en el dispositivo y observo qué notifications están progtwigdas, obtengo la siguiente date de disparo, y todavía dice 17:00:00. Hubiera esperado que se disparara dos horas antes, a las 15:00:00.

¿Cómo puedo hacer que funcione de esta manera? He intentado cambiar la zona horaria del calendar utilizado para crear los componentes de date alimentados a UNCalendarNotificationTrigger (las cosas probadas son: TimeZone.init(identifier: "Somewhere") , TimeZone.autoupdatingCurrent , posiblemente otros). Pero simplemente no cambiará, AFAIK siempre obtengo exactamente la misma date de disparo incluso si cambio las zonas horarias.

UNTimeIntervalNotificationTrigger puede resolver este problema.

Podría calcular la diferencia entre la date que configuró y la date actual, luego progtwigr un desencadenante del intervalo de time.

 func timeIntervalTrigger(from date: Date, repeats: Bool) -> UNTimeIntervalNotificationTrigger { let timeInterval = date.timeIntervalSinceNow let trigger = UNTimeIntervalNotificationTrigger(timeInterval: timeInterval, repeats: repeats) return trigger }