PowerAutomateで関数を使って日付を取得してあれこれするにあたり、とりあえず使ってみた関数が utcNow() だったが、結果が想像と違ったため、色々と他の関数を試してみたので結果を遺してみます。
単純にutcNowを使って取得した日付は、こんな感じです。
2020-05-09T04:10:47.8028024Z
日本の現在時間じゃなかった。
これは、ISO8601で定義されている日時のフォーマットらしく、最後にZがついているのがUTC(協定世界時)。ちなみにUTCとGMT(世界標準時)はほぼ同じだけど、時間の経過に若干差があり、この差が0.8秒を超えると「うるう秒」として調整している。2015年にうるう秒の調整があったときはSEやっている人はわちゃわちゃしたと思います。
UTCとGMTがほぼ同じという前提からいくと、プラス9時間した日時が日本の時間ということになる。
さて、ということでPowerAutomateで日本時間で処理したいフローを作るには、取得した日時に9時間を加算する処理が必要になる。(jstNowみたいな関数がないからね・・・)
加算するための関数を調べた感じ、getFutureTime関数とaddToTime関数が使えそうなので、試してみた結果がこちら。
utcNow()
2020-05-09T04:36:46.7758734Z
getFutureTime(9,’Hour’)
2020-05-09T13:36:46.7758734Z
addToTime(utcNow(), 9, ‘Hour’)
2020-05-09T13:36:46.7758734Z
どちらもOKそうですね。
単純に今のUTC時間に時間(日も分も秒もOK)をプラスしたいだけならば、getFutureTime() で良さそう。addToTime() は、プラスしたいもとの時間(TimeStamp)を自由に指定ができる。試したときは utcNow() に9Hour追加するように書いたが、addToTime(‘2018-01-01T00:00:00Z’, 9, ‘Hour’) みたいな感じで日時をべた書きする使い方が可能。特定の日時を基準に時間をコントロールしたいときに使えるのかな、という印象。
というわけで日本の現在時間を取得してあれこれしたい場合は、getFutureTime関数が良さそうという結論に達した。使っているうちにまた違う方法に気が付くのかもしれないので、そのときはまたアップデートしたいと思います。
コメント
[…] PowerAutomateで日時を扱うときに、日本時間に変換して処理する方法として、getFutureTime()とaddToTime()を使った方法を先日記事にしましたが、あらかじめPowerAutomateで用意されているコネクタにもタイムゾーンを変換する便利なものがあります。 […]
[…] […]