0

Ich habe einen Code, der eine Benachrichtigung zu einer bestimmten Zeit jeden Tag sendet. Die Benachrichtigung funktioniert jederzeit mit am. Wenn die Zeit jedoch pm enthält, wird die Benachrichtigung nicht gesendet. Ich weiß nicht wirklich warum. Hier ist mein Code:Benachrichtigung wird nicht gesendet, wenn Zeit "PM" enthält - swift

static func sendNotification(stringDate: String) { 
     let dateFormatter = DateFormatter() 
     dateFormatter.dateFormat = "HH:mm" 

     let content = UNMutableNotificationContent() 
     content.title = "Your daily news is ready!" 
     content.body = "Come and check out the latest headlines!" 

     if let date = dateFormatter.date(from: stringDate) { 
      let calendar = Calendar.current 

      let hour = calendar.component(.hour, from: date) 
      let minute = calendar.component(.minute, from: date) 

      var dateComponents = DateComponents() 
      dateComponents.hour = hour 
      dateComponents.minute = minute 

      let trigger = UNCalendarNotificationTrigger(dateMatching: dateComponents, repeats: true) 
      let request = UNNotificationRequest(identifier: "dateDone", content: content, trigger: trigger) 

      UNUserNotificationCenter.current().add(request, withCompletionHandler: nil) 
     } 
    } 

in der obigen Funktion ich einen Parameter namens stringDate haben, die einfach eine Zeichenfolge, die die Zeit enthält Ich möchte auf die Benachrichtigung senden. Ich weiß nicht wirklich, dass die Benachrichtigungen nur funktionieren, also würde jede Hilfe geschätzt werden.

Antwort

1

Wenn AM/PM Verwenden Sie ein anderes Datumsformat verwenden sollen:

let dateFormatter = DateFormatter() 
dateFormatter.dateFormat = "hh:mm a" 

Wenn Sie die Kontrolle nicht über den Eingang haben, könnten Sie zunächst versuchen, es in 24-Stunden-Format zu analysieren und wenn das nicht mit dem AM/PM Format funktioniert

+0

es funktioniert. Danke für deine Hilfe –

0

Ich denke, die Art, wie Sie die Zeit von String analysieren, könnte falsch sein, können Sie die AM/PM loswerden, wenn Sie analysieren. Ich bin mit Swift nicht vertraut, also kann ich mich irren. Allerdings fand ich diese Frage hilfreich, wenn das das Problem ist. xcode swift am/pm time to 24 hour format

Verwandte Themen