はじめに
この記事では、UNIX時間(UNIX time/UNIX時刻/ユニックス時間 など、以下、UNIX時間で統一して表記します。)とは何か、Google Apps Script(以下、GAS)での変換方法(協定世界時 → UNIX時間 / UNIX時間 → 協定世界時)をお伝えします。
UNIX時間とは、コンピュータシステム上の時刻標記の1つです。協定世界時 (UTC) での1970年1月1日午前0時0分0秒からの経過秒数により表現します。例えば、ISO 8601形式:2021-09-25T13:08:41Z のとき、UNIX時間は1632575321 と表記します。
計算式(変換方法)
協定世界時 から UNIX時間に変換する方法
計算式
協定世界時 ➗ 1000 = UNIX時間
ポイント:協定世界時間を1000で除する。
実装コードの例
//協定世界時の時刻
var date = new Date();
console.log(date);
// Sun Sep 26 2021 09:55:38 GMT+0900 (Japan Standard Time)
// *注意:Google Apps Script のプロジェクトのTime Zoneの設定エリアによって表示が変化する点に注意してください。
// 協定世界時 から UNIX時間
var unixtime = date / 1000;
console.log(unixtime); //1632617738.99
// 参考:
// UTCの時間表記で出力した場合
console.log(Utilities.formatDate(date, "UTC", "yyyy-MM-dd HH:mm:ss"));
// 2021-09-26 00:55:38
// JSTの時間表記で出力した場合
console.log(Utilities.formatDate(date, "JST", "yyyy-MM-dd HH:mm:ss"));
// 2021-09-26 09:55:38
UNIX時間 から 協定世界時 に変換する方法
計算式
new Date(UNIX時間 × 1000) = 協定世界時
ポイント: UNIX時間に1000を乗する。ただし、UNIX時間はあくまで数字であるため、日付に変換する処理として、 Date() クラスの引数に指定すること。
実装コードの例
//UNIX時間の時刻
var unixtime = 1632617738.99;
// UNIX時間 から 協定世界時
var date = new Date(unixtime * 1000);
// Sun Sep 26 2021 09:55:38 GMT+0900 (Japan Standard Time)
// *注意:Google Apps Script のプロジェクトのTime Zoneの設定エリアによって表示が変化する点に注意してください。
// 参考:
// UTCの時間表記で出力した場合
console.log(Utilities.formatDate(date, "UTC", "yyyy-MM-dd HH:mm:ss"));
// 2021-09-26 00:55:38
// JSTの時間表記で出力した場合
console.log(Utilities.formatDate(date, "JST", "yyyy-MM-dd HH:mm:ss"));
// 2021-09-26 09:55:38
利用場面の例
GASでUNIX時間を利用する場面は、下記のような例があります。*UNIX時間は、対人向けの表記ではなくコンピューター向けの表記であるため、利用場面は少ないですが覚えておくと便利です。
・GASを利用したGmailのメール検索時に時間単位でQueryを指定し、特定のメールを抽出する時
・SlackなどのSaasアプリケーションのAPIでUNIX時間が利用されている時
コメント