2020/03/09 追記: 今年はうるう年です。雰囲気1日ずれそうな手法を書いていました。ごめんなさい。ダメージを一番受けたのは多分僕です。多分これで大丈夫です。
sub(div(ticks(utcNow()), 10000000), 62135596800)
元はちょっとわかりにくいので避けていたのだけれど、1970年分のシリアル値を減算する。
LogicAppsのデザイナ上はこんなことが書いてあったけれど DateTime.Ticks プロパティ (System) | Microsoft Docs の通りであるようだった。
まぁ、食い違っていたら1日どころではない差が出るのですぐ気づくだろう。もっとカッチリしたアプリケーションプログラムならググって出てくるようにDateTime構造体を作って1970年分のシリアル値を得るのが良いと思う。
以下悲しみの記憶。
div(ticks(subtractFromTime(utcNow(), 1969, 'Year')), 10000000)
こんな感じで得られる。特定の時刻のものが必要なら utcNow()
の部分を適宜差し替えればいい。
使っている関数の詳細はリファレンス参照 式関数のリァレンス ガイド | Microsoft Docs。
現在時刻を得てから1970年からの経過時刻になるように1969年引いてからシリアル値を取得、秒の単位に切り捨てている。
MackerelのAPIは時刻をepoch秒で表現するのだけれど、これを簡単に得られない実行環境もあって、Azure Logic Apps(やMicrosoft Power Automateなど)はその一つだ。
↓の記事を書いたときにメモした記憶があったのだけれど、メモしてなかったのでメモした次第。記憶が全く当てにならない。どこか別の場所や記事に書いたのかもしれない。