前の例のように、タイムゾーンが前進または後退するたびにフローを再公開するというタスクを回避するために、コレクション変数を使用してタイムゾーンのオフセットを考慮できます。 この方法では最初より多くの作業が必要になりますが、フローレベルの変数に格納されているオフセットを管理する必要がなくなり、式を使用するよりも簡単になります。
この方法は、並列配列アプローチを使用し、UTCが与えられたときのタイムゾーンのバイアスオフセットを考慮した望ましいオフセットを保存します 値。 この例は、東部タイムゾーンの整数コレクション変数の設定です。 値の計算
メモ: オフセットは-5時間です。 必要に応じて、Flow.LocalTimeZoneMinuteOffsetCollection項目のエントリに夏時間バイアスを手動で適用します。
コレクションアイテム |
Flow.UtcDateTimeCollection |
Flow.LocalTimezoneMinuteOffsetCollection |
アイテム0 |
2016年3月13日日曜日午前7:00 |
-300
メモ: 注意:-300は-300分または-5時間を表します。
|
項目1 |
2016年11月6日日曜日午前8時 |
-240
メモ: -240は、-240分または-4時間を表します。 この場合、2016年3月13日日曜日の午前7時以降 UTC(コレクションの最初のアイテム)2016年11月6日日曜日午前8時まで UTCの場合、システムはUTC DateTime値を-240分オフセットする必要があります。これにより、正しい現地時間になります。
|
項目2 |
2017年3月12日日曜日午前7:00 |
-300 |
項目3 |
2017年11月5日日曜日午前8時 |
-240 |
項目4 |
2018年3月11日日曜日午前7:00 |
-300 |
項目5 |
2018年11月4日日曜日午前8時 |
-240 |
項目6 |
2019年3月10日日曜日午前7:00 |
-300 |
項目7 |
2019年11月3日日曜日午前8時 |
-240 |
項目8 |
2020年3月8日日曜日午前7:00 |
-300 |
項目9* |
2020年11月1日日曜日午前8時 |
-240 |
* 2020年を過ぎるコールフローのエントリをさらに追加します。
このコレクションはUTCのセットです 東部タイムゾーンが前進または後退する時の値 では、フローが開始されたときに、DSTとタイムゾーンの考慮事項に基づいて現地時間を探すタスクを作成します。
- UTCを決定する フロー作成者がローカルを取得したい値 。 たとえば、Update DataアクションまたはFlow.StartDateTimeUtcを使用してGetCurrentDateTimeUtc()をFlow.UtcDateTimeToCheckに保存するか、この場合は Flow.StartDateTimeUtc。
- ループアクションを追加して設定します。
- インデックス0から始めて、 Flow.UTCDateTimeCollection。
- で見つかった最初の値 Flow.UTCDateTimeCollection 以上 Flow.UtcDateTimeToCheck同じアイテムインデックスからの対応する分オフセットを Flow.LocalTimezoneMinuteOffsetCollection に Flow.MinuteOffsetToApply。
- ループ後、値が割り当てられていない場合 Flow.MinuteOffsetToApplyデフォルトの分オフセットを割り当てます。例えば300です。 この状況では、UTC 時間をチェックするための値に、それ以上のエントリがありません。 Flow.UtcDateTimeCollection 変数。
- 次に、次の式を使用して上記のアルゴリズムから現地時間を取得します。
Flow.MyLocalDateTimeToUse = AddMinutes(Flow.UtcDateTimeToCheck、Flow.MinuteOffsetToApply)
これで、計算に使用できる適切なバイアスが適用された現地時間が得られました。 適用されるバイアスは、 Flow.LocalTimezoneMinuteOffset コレクション。