はじめに
ごきげんよう、百合宮桜です。
最近、SNS で Power Automate 内でのタイムゾーン変換に addHours 関数を使う方々が散見されます。
タイムゾーンの変換するには 推奨できない方法 なので、なぜやってはいけないのか?を書き留めておこうと思います。
正確性にかける
addHours 関数で行えることは日時の加算 / 減算であり、時差計算は正確に行えない可能性があります。
例えば、アメリカ / ワシントン には夏時間(サマータイム)というものが存在します。これは日中の明るい時間を有効活用するために、通常の時間よりも時計を数時間すすめる制度です。このため、季節によって時差の計算がずれます。
addHours 関数でこの計算を行うには日付による条件分岐を挟まなくてはならず、現実的には言えません。
また、時差の計算は単なる加算 / 減算ではなく、地球の自転と経度に基づいて計算されています。そのため、単なる加算 / 減算を行うための関数では計算すると 考慮不足 が発生します。
メンテナンス性が悪い
夏時間の期間は各国の政府や関連機関が決めています。addHours 関数で時差計算を行う場合はそれに合わせて、条件分岐のメンテナンスを行わなければならず非効率です。
タイムゾーン変換を変換するためのアクションや関数が存在する
Power Automate にはタイムゾーン変換をササッとやってくれる便利なアクションや関数が存在ます。これらを使えば、夏時間を考慮したメンテナンスは不要なので、こっちを使う方が断然効率的です。
タイムゾーンの変換
Power Automate で使えるアクションです。
以下の項目をプルダウンからポチポチ選ぶだけであっという間に変換できる優れものです(≧▽≦)
- Base time : 変換したい日時
- Source time zone : 変換前のタイムゾーン
- Destination time zone : 変換後のタイムゾーン
- Time unit : 日時の形式
詳細は以下のドキュメントをご確認ください。
convertTimeZone 関数
Power Automate で使用できる関数です。式を書きたいときはこちらを使います。
convertTimeZone(
変換する日時,
変換前のタイムゾーン,
変換後のタイムゾーン,
日時の形式
)
タイムゾーン名は以下を参照してください。
日時の形式(書式)パターンについては以下を参照してください。
おわりに
関数やアクションにはそれぞれ役割があります。
役割にあった活用をしてあげてくださいね!
それではごきげんよう。