Flow で扱う時刻を日本時間に変換したい

flowで扱う日時はUTC(世界標準時)です。
でも我々が扱いたいのは日本標準時(UTC+9)です。

なのでUTCをUTC+9に変換する方法を紹介します。

ちなみに、Office 365 のテナント設定とかそういった全体的な設定で日本標準時に固定する方法は現在のところないようです。

そのまま使うと時間がずれるのを確認

例として、「モバイルのFlowボタンを押したとき」の日時を、「スマホ通知する」Flowを見てみます。

スマホにFlowアプリをインストールしてボタンに先ほど設定したボタンをタップします。
16:40 にボタンを押したのに、7:40として処理されてますね。

 

タイムゾーン機能を使う

アクションをボタンのすぐ後に追加します。

アクションを「日付」で検索して「タイムゾーンの変換」を選択します。

こんな感じで「タイムゾーンの変換」に設定をします。
・タイムスタンプ
・(UTC)協定世界時
・(UTC+9:00)大阪、札幌、東京
・yyyy-mm-dd hh:mm:ss

「Send me a mobile notification」のText に先ほど設定した「変更後の時間」を指定します。
※「変更後の時間」はちょっとわかりづらいですが指定するときにアクション名「タイムゾーンの変換」の中から選択することで間違えないようにしましょう。
※※業務で使う場合は「変数」を使って分かりやすくするべきですね。

書式設定文字列はExcel関数などでもよく出てきますね。

大文字、小文字の理由とかは以下の参考ページを確認してください。
参考:.NET TIPS:日付や時刻の文字列をDateTimeオブジェクトに変換するには?

というわけで、うまいこと受信できました!!

 

日付と時刻を個別に取得する

実際に業務などで使うときは、日付と時刻は別々の変数のほうが便利です。
こんな感じで2つのアクションで取得すればOKです。

ちなみに、処理のタイトルは「…」変更できます。