Problembeschreibung
Wenn Sie datetimes über Trigger und Aktionen in Microsoft Power Automation übergeben, finden Benutzer möglicherweise eine DateTime in der falschen Zeitzone. Benutzer möchten möglicherweise die Zeitzone (häufig in UTC) in die lokale Zeit konvertieren.
Ursache
Dies ist auf Dienste zurückzuführen, die Datumsangaben in unterschiedlichen Formaten oder Zeitzonen übergeben. Jeder Connector kann ein anderes DateTime-Format oder eine andere Zeitzone verwenden.
Einige Dienste verwenden strikt UTC-Zeit, um Verwirrung zu vermeiden.
Fehlerbehebung
Es gibt zwei Möglichkeiten, dieses Problem zu lösen: über eine Aktion oder einen Ausdruck.
Verwenden der Aktion
Power Automation verfügt über einen integrierten Vorgang mit dem Namen "Zeitzone konvertieren".
Suchen Sie nach "Zeitzone konvertieren", und wählen Sie den Vorgang "Zeitzone konvertieren" aus.
Der Vorgang "Zeitzone konvertieren" enthält einige erforderliche Eingaben:
Basis Zeit: die DateTime, die Sie konvertieren möchten. Quellzeitzone: die Zeitzone, in der sich die DateTime derzeit befindet. Zielzeitzone: die Zeitzone, in die Sie das Datum konvertieren möchten.
Nachfolgend finden Sie die nachstehenden Hinweise, wie Sie die aktuelle Zeitzone finden.
Verwenden des Ausdrucks
Power Automation verfügt über eine Ausdrucks Funktion zum Konvertieren der Zeitzone.
convertTimeZone(timestamp: string, sourceTimeZone: string, destinationTimeZone: string, format?: string) Required. A string that contains the time. Converts a string timestamp passed in from a source time zone to a target time zone
Sie müssen folgende Schritte durchführen:
timestamp: die DateTime, die Sie konvertieren möchten. sourceTimeZone: die Zeitzone, in der sich die DateTime derzeit befindet. destinationTimeZone: die Zeitzone, in die Sie das Datum konvertieren möchten. Format (optional): das Format der Zeitzone, in die Sie Ihr Datum umwandeln möchten.
Beispiel:
convertTimeZone(triggerBody()?['Date'],'UTC','Eastern Standard Time','HH:mm')
Hier ist timestamp "triggerBody()?['Date']", die Quellzeitzone ist"UTC", die Zielzeitzone ist"Eastern Standard Time", und das Format ist"HH:mm".
Weitere Informationen zu dieser Ausdrucks Funktion finden Sie in der convertTimeZone-Dokumentation .
Hinweise
Entziffern einer DateTime
DateTime-Formate können in unterschiedlichen Formaten geliefert werden.
Wenn Ihr DateTime-Wert am Ende ein "Z" hat, bedeutet dies, dass es sich um eine UTC-Zeit handelt. Beispiel: 2020-04-10T01:28:14.0406387Z
Weitere Informationen zu DateTime-Formaten finden Sie unter Standard mäßige Formatzeichenfolgen für Datum und Uhrzeit .
Möglicherweise erhalten Sie Fehler, bei denen die Zeichenfolge für Datum und Uhrzeit nicht das richtige Format aufweist. "Die Zeichenfolge für Datum und Uhrzeit muss mit dem ISO8601-Format übereinstimmen." In der formatDateTime-Ausdrucks Dokumentation finden Sie Informationen dazu, wie Sie Ihre DateTime-Zeichenfolge richtig formatieren.
Überprüfen der Zeitzone einer Ausgabe
Wenn Sie sich nicht sicher sind, wie sich die DateTime-Zeitzone zurzeit befindet, können Sie den Flow ausführen, um das DateTime-Ausgabeformat zu sehen.
In diesem Beispiel gibt der Vorgang "Prognose für heute abrufen" den Zeitstempel für den Zeitpunkt zurück, zu dem die Prognose abgerechnet wurde.
Diese DateTime verwendet das ISO-8601-DateTime-Format. Wir können sehen, dass dieser Vorgang die DateTime in der UTC-Zeitzone ausgibt.
Begrenzungen
Einige Connectors können Einschränkungen hinsichtlich der Anzeige der Zeitzone aufweisen. Weitere Informationen zu den einzelnen Connectors finden Sie in der Referenzdokumentation zu Connectors .