18.8K Views
June 17, 23
スライド概要
気ままに勉強会 #59 でLTさせて頂いた内容です。
https://kimamani.connpass.com/event/286924/
Power Automate で日付の取り扱いってハマりポイントですよねぇ
Microsoft 365 , Power Platform ( Power Apps | Power Automate )とか
日時の取り扱いにハマった話 テーマLT 私、ココにつまづきました・ハマりました @flali_world 気ままに勉強会 #59
PROFILE フロッキー https://www.frog-pod.com/ NAME : ふらり @ ROBO BOY Twitter : @flali_world Blog : https://flali.hatenablog.com/ Docs : https://www.docswell.com/user/fworlddocs @flali_world 2
はじめに 本資料に掲載されている内容は、 いつか人になりたいと思っている 🤖の空想上の出来事です。 内容間違っていたらごめんなさい。 @flali_world 3
Power Automate はこういう処理が得意 単一もしくは複数のサービスを接続して、条件分岐やデータ操作、データ変換な どの操作(アクション)を追加し、自動処理させるのが得意。 SERVICE A 予定表管理 SERVICE B Power Automate ファイル保存 コントロール データ操作 関数 @flali_world 4
🤖 ちゃんと期間指定したはずなんだけど 取得できてないなぁ 書き込んだデータの日時がずれている @flali_world 5
ちゃんと期間指定したはずなんだけど 取得できてないなぁ 書き込んだデータの日時がずれている 上手く結果が得られなくて挫折する… @flali_world 6
タイムゾーン認識してますか? @flali_world 7
タイムゾーンを考える 太平洋標準時 UTC(協定世界時) 日本標準時 UTC -08:00 UTC +00:00 UTC +09:00 @flali_world 8
JSTとUTC 日本 UTC + 9 Japan Standard Time 世界協定時 UTC Coordinated Universal Time 2023-06-17 00:00:00 2023-06-16 15:00:00 2023-06-17T15:00:00 +9:00 2023-06-16T15:00:00Z @flali_world 9
JSTとUTC 日本の今日の00:00-09:00 UTCでは日本の前日の15:00-00:00 00:00 09:00 00:00 6/17 6/16 この範囲の予定は 自分が取扱いたいタイムゾーン 15:00 UTCだとこの時間 Power Automate の基本はこっち @flali_world 10
それぞれのサービスで基準となるタイムゾーンを認識する サービスごとに採用しているタイムゾーンは固定で変更できない サービス側のUIは表示するタイムゾーンは変更可能な場合がある Power Automate SERVICE A シス テム UTC +09:00 表示 設定 UTC +09:00 ※API エンドポイントの設置場所や提供者の国の場合もあります。 シス テム UTC +00:00 SERVICE B シス テム UTC +00:00 表示 設定 UTC -08:00 ※API エンドポイントの設置場所や提供者の国の場合もあります。 @flali_world 11
表示設定の変更 / SharePoint の場合 既定値だと (UTC-08:00)太平洋標準時 になっています。 @flali_world 12
フロー作成者、利用者(入出力) のタイムゾーンを認識する SERVICE A 利用者 UTC +??:?? フロー作成者、利用者(入出力) UTC +??:?? UTC +09:00 表示 設定 UTC +09:00 ※API エンドポイントの設置場所や提供者の国の場合もあります。 UTC +??:?? Power Automate SERVICE A シス テム SERVICE A 利用者 シス テム UTC +00:00 SERVICE B シス テム UTC +00:00 表示 設定 UTC -08:00 ※API エンドポイントの設置場所や提供者の国の場合もあります。 @flali_world 13
フロー作成者、利用者(入出力) のタイムゾーンを認識する SERVICE A 利用者 UTC +??:?? フロー作成者、利用者(入出力) UTC +??:?? UTC +09:00 表示 設定 UTC +09:00 ※API エンドポイントの設置場所や提供者の国の場合もあります。 UTC +??:?? Power Automate SERVICE A シス テム SERVICE A 利用者 シス テム UTC +00:00 SERVICE B シス テム UTC +00:00 表示 設定 UTC -08:00 ※API エンドポイントの設置場所や提供者の国の場合もあります。 フローの作成時は 各サービスと各利用者の考慮が必要 @flali_world 14
フォーマット大事(なんだけどなぁ) 🤖 書式を無視しても動作はするが、ルールは大事。”Z” も忘れずに… サービスによって変化球もあるので注意が必要 2023-06-17T11:00:00Z 日付と時刻の間はT リテラル値 “Z”はUTCを表す “Z”がなければローカル 式関数のリファレンス ガイド - Azure Logic Apps | Microsoft Docs 標準の日時書式指定文字列 | Microsoft Docs @flali_world 15
フォーマット大事(人から見た場合) 人がサービスへ日時をどのようなフォーマットで入力するのか。 人がサービスから受け取る日時をどのようなフォーマットでほしいのか。 2023-06-17T11:00:00Z 2023-06-17 PM8:00 INPUT OUTPUT 2023-06-17T11:00:00Z 式関数のリファレンス ガイド - Azure Logic Apps | Microsoft Docs 標準の日時書式指定文字列 | Microsoft Docs @flali_world 16
フォーマット大事(人から見た場合) Power Automate で適切に変換してあげよう! 2023-06-17T11:00:00Z 2023-06-17 PM8:00 INPUT OUTPUT convertFromUtc('2023-06-17T11:00:00Z','Tokyo Standard Time','yyyy-MM-dd HH:mm:ss') convertToUtc('2023-06-17 PM8:00','Tokyo Standard Time') Power Automate 2023-06-17 PM8:00 INPUT 2023-06-17T11:00:00Z Power Automate OUTPUT 2023-06-17 20:00:00 式関数のリファレンス ガイド - Azure Logic Apps | Microsoft Docs 標準の日時書式指定文字列 | Microsoft Docs @flali_world 17
さいごに
まとめ 接続先の各サービスのタイムゾーンを確認する 作成者や利用者のタイムゾーンを考慮する フォーマット大事だよ(変化球も多い) ※アクションごとに出力する、または、要求するフォーマットが違うこともあるよ @flali_world 19
Thank you !