FAMLog
Claris FileMaker ProでUNIX時間を取得する方法
March 10, 2022
Claris FileMaker ProでUNIX時間を取得する方法の1つに、Claris FileMakerの取得関数とTimestamp関数、日付関数、時刻関数、GetAsNumber関数などを組み合わせる方法があります。
[例1]
GetAsNumber ( Get ( タイムスタンプ ) - Timestamp ( Date ( 1 ; 1 ; 1970 ) ; Time ( 0 ; 0 ; 0 ) ) ) - 60 * 60 * 9
[例2]
GetAsNumber ( Get ( ホストのタイムスタンプ ) - Timestamp ( Date ( 1 ; 1 ; 1970 ) ; Time ( 0 ; 0 ; 0 ) ) ) - GetAsNumber ( Get ( ホストのタイムスタンプ ) - GetAsTimestamp ( Floor ( Get ( 現在の時刻 UTC ミリ秒 ) / 1000 ) ) )
[例3]
Int ( Get ( 現在の時刻 UTC ミリ秒 ) / 1000 ) - 62135596800
UNIX時間は協定世界時(UTC)での1970年1月1日0時0分0秒からの形式的な経過秒数です。クラウドサービスによってはAPIを使うにあたりJWT(JSON Web Token)を作成しなければならない場合があり、その際にUNIX時間を取得する必要が出てくることがあります。
上の例1は、日本標準時(JST)であることが前提となっている式であり、Claris FileMaker Cloud上で実行される場合が考慮されていませんのでご注意ください。また、必要に応じて閏秒も考慮する必要があります。
[関連]FileMaker で気軽に UTC とその地域 (今回は JST)の時差を取得する方法(p388cellさんのnote)、epochTime(Brian Dunning's free FileMaker Custom Functions library)
(2022年3月10日追記:例2の式において、Get(タイムスタンプ)関数ではなくGet(ホストのタイムスタンプ)関数を使用するように式を変更しました。)
(2022年3月11日追記:関連記事を1つ追加しました。)
(2022年5月29日追記:[例3]を追加しました。)