【GAS】UNIX time を取得する方法
調べたきっかけ
とある API のドキュメントを見ていたら UNIX timestamp 形式で時間単位の指定が可能と書かれていました。
LINE WORKS API - 監査データのダウンロード
UNIX timestamp 形式を採用している API って割とあるんですね。
UNIX time とは
UNIX time(UNIX 時間)とは、協定世界時 (UTC) での1970年1月1日午前0時0分0秒から形式的な経過秒数のことです。
ウィキペディア(Wikipedia)- UNIX 時間
秒数なので、気の遠くなるほど大きい数ですね( ゚Д゚)
UNIX time を取得する
と、言うわけでタイトル通り Google Apps Script で UNIX time を取得したいと思います。
探したところ、Date.parse() メソッドを使うのが良さそうです。
日時の文字列を読み込み、UTC からの経過時間を表すミリ秒単位の数値を返してくれます。
function getUnixTime(){
const now = new Date()
Logger.log(`now: ${now}`)
const formatNow = Utilities.formatDate(now, 'GMT', 'dd MMM yyyy HH:mm:ss z')
Logger.log(`formatNow: ${formatNow}`)
const unixTime = Date.parse(formatNow)/1000
Logger.log(`unixTime: ${unixTime.toFixed()}`)
}
now: Tue Dec 22 17:14:27 GMT+09:00 2020
formatNow: 22 Dec 2020 08:14:27 GMT
unixTime: 1608624867
コード解説
- 日付フォーマットの差異
new Date()
で取得できる日付と Date.parse()
の引数として入れる日付のフォーマットが異なっていたので Utilities.formatDate()
を使って揃えました。
特に、月が Dec
とかの英字形式でないと容赦なく NaN
が返ってきます。
- 戻り値で返ってくるのはミリ秒単位
Date.parse()
で返ってくる値はミリ秒単位なので 1000 で割って秒単位にしています。
- 整数表記にする
最後に toFixed メソッドを使用して整数表記にしました。
おわりに
ここまでお付き合いいただきありがとうございました。
調べてみたら UNIX time を返してくれる API がありました。
Unix Timestamp converter REST API
UNIX time は、実はあまり馴染みがなかったのですが、馴染んでおくとどこかで役に立ちそうですね!
少なくとも「ナニソレ?美味しいの??」状態にはならなさそうです( ゚Д゚)
ではまた!(^^)/
参考にさせていただきましたm(_ _)m
MDN Web Docs - Date.parse
Google Apps Script 公式 - Utilities.formatDate(date, timeZone, format)
java.text - Class SimpleDateFormat
ウィキペディア(Wikipedia)- UNIX 時間
Author And Source
この問題について(【GAS】UNIX time を取得する方法), 我々は、より多くの情報をここで見つけました https://qiita.com/kunihiros/items/3878e951e726358a3258著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .