Um zu vermeiden, dass der Fluss jedes Mal neu veröffentlicht werden muss, wenn die Zeitzone vor- oder zurückspringt, wie im vorherigen Beispiel, können Sie Auflistungsvariablen verwenden, um Offsets für eine Zeitzone zu berücksichtigen. Diese Option erfordert zwar anfangs mehr Arbeit, macht aber die Verwaltung von Offsets, die in Variablen auf der Ablaufebene gespeichert sind, überflüssig und bietet mehr Einfachheit als die Verwendung von Ausdrücken.
Diese Methode verwendet einen parallelen Array-Ansatz und speichert die gewünschten Offsets, die den Bias-Offset für eine Zeitzone mit einem UTC-DateTime-Wert berücksichtigen. In diesem Beispiel werden ganzzahlige Sammelvariablen für die Berechnung von DateTime-Werten für die östliche Zeitzone eingerichtet.
Hinweis: Die Verschiebung beträgt -5 Stunden. Wenden Sie die Sommerzeitverzerrung manuell auf die Einträge in den Flow.LocalTimeZoneMinuteOffsetCollection-Elementen an, falls erforderlich.
Sammlungselemente |
Flow.UtcDateTimeCollection |
Flow.LocalTimezoneMinuteOffsetCollection |
Posten 0 |
Sonntag, 13. März 2016 um 7:00 Uhr |
-300
Hinweis: -300 entspricht -300 Minuten oder -5 Stunden.
|
Posten 1 |
Sonntag, November 6, 2016 um 8:00 Uhr |
-240
Hinweis: -240 entspricht -240 Minuten oder -4 Stunden. In diesem Fall nach Sonntag, dem 13. März 2016 um 7:00 Uhr morgens. UTC (der erste Artikel in der Sammlung) bis Sonntag, den 6. November 2016 um 8:00 Uhr morgens. UTC, sollte das System einen UTC-DateTime-Wert um -240 Minuten versetzen, um sicherzustellen, dass er in der richtigen Ortszeit ist.
|
Posten 2 |
Sonntag, 12. März 2017 um 7:00 Uhr |
-300 |
Punkt 3 |
Sonntag, November 5, 2017 um 8:00 Uhr |
-240 |
Posten 4 |
Sonntag, 11. März 2018 um 7:00 Uhr |
-300 |
Punkt 5 |
Sonntag, 4. November 2018 um 8:00 Uhr |
-240 |
Punkt 6 |
Sonntag, 10. März 2019 um 7:00 Uhr |
-300 |
Punkt 7 |
Sonntag, 3. November 2019 um 8:00 Uhr |
-240 |
Posten 8 |
Sonntag, 8. März 2020 um 7:00 Uhr |
-300 |
Posten 9* |
Sonntag, 1. November 2020 um 8:00 Uhr |
-240 |
* Fügen Sie weitere Einträge für Abrufbewegungen hinzu, die über das Jahr 2020 hinausgehen.
Bei dieser Sammlung handelt es sich um eine Reihe von UTC-DateTime-Werten, die angeben, wann die östliche Zeitzone vor- oder zurückspringt. Erstellen Sie nun eine Aufgabe, die bei der Initiierung eines Flusses nach einer Ortszeit sucht, die auf der Sommerzeit und der Zeitzone basiert:
- Bestimmen Sie den UTC-DateTime-Wert, für den der Autor des Flusses eine lokale DateTime erhalten möchte. Verwenden Sie z. B. eine Datenaktualisierungsaktion oder eine Flow.StartDateTimeUtc, um GetCurrentDateTimeUtc() in Flow.UtcDateTimeToCheck zu speichern, oder verwenden Sie in diesem Fall Flow.StartDateTimeUtc.
- Hinzufügen und Konfigurieren einer Schleifenaktion:
- Beginnen Sie bei Index 0 und durchlaufen Sie die Flow.UTCDateTimeCollection.
- Für den ersten in Flow.UTCDateTimeCollection gefundenen Wert, der größer oder gleich Flow.UtcDateTimeToCheckist, speichern Sie den entsprechenden Minuten-Offset aus dem gleichen Element-Index in Flow.LocalTimezoneMinuteOffsetCollection zu Flow.MinuteOffsetToApply.
- Wenn nach der Schleife Flow.MinuteOffsetToApplykein Wert zugewiesen wird, weisen Sie einen Standard-Minuten-Offset zu, z. B. 300. In diesem Fall hat der UTC-DateTime-Wert für die Zeitüberprüfung keinen Eintrag in der Variablen Flow.UtcDateTimeCollection , der größer oder gleich diesem Wert ist
- Verwenden Sie dann den folgenden Ausdruck, um die Ortszeit aus dem obigen Algorithmus zu erhalten:
Flow.MyLocalDateTimeToUse = AddMinutes(Flow.UtcDateTimeToCheck, Flow.MinuteOffsetToApply)
Sie haben nun eine Ortszeit mit der entsprechenden Verzerrung, die Sie für Berechnungen verwenden können. Die angewandte Verzerrung basiert auf dem Nachschlagewert in der Sammlung Flow.LocalTimezoneMinuteOffset