【GAS】Google Apps Scriptで日付・文字列・数値を変換する方法

はじめに

今回はGoogle App Scriptのプログラム上で「日付型」「文字列型」「数値型」を変換する方法を紹介します。

型をしっかりと認識してコードを書いていかないと、予測しないバグの原因にもなりますので、それらを未然に防ぐためにもご参加になればと思います!

日付型データを任意の文字列に変換

let Date_String = Utilities.formatDate(new Date(), "JST", "yyyy/MM/dd HH:mm:ss");

UtilitiesクラスのformatDate関数を使用して日付を文字列変換する際の整形を行なっています。

formatDate関数の第一引数であるnew Date()はこのコードが実行された時の時刻を日付型で返却します。つまり、formatDate関数に現在の時刻を入力しています。

formatDate関数の第二引数である"JST"はこのタイムゾーンを「日本」でしています。日本以外のタイムゾーンを指定する文字列については下記を参照してください。

タイムゾーン略称一覧

formatDate関数の第三引数である"yyyy/MM/dd HH:mm:ss"は文字列として変換される時のフォーマットを指定しています。「yyyy」が「年」、「MM」が「月」、「dd」が「日付」を表しており、時間に関しても「HH」が「時」、「mm」が「分」、「ss」が「秒」を表しています。

文字列型データ(日付と認識できるもの)を文字列型に変換する

let Day_String = "2024/5/1 12:12:12";
let Day_Date = new Date(Day_Data)

日付を表現された文字列であれば、new Date()を使用すれば日付型に変換することができます。

これを活用すれば、日付の情報を失わないようにしながら、任意の文字列の日付データから別の形の日付文字列データへ変換することが可能となります。

任意の文字列をフォーマット形式によって整形する

let text_String = Utilities.formatString("%5s","abc");

UtilitiesクラスのformatString関数を使用して任意の文字列を決まった形に整形しています。

formatString関数の第一引数である"%5s"はフォーマット指定子というものです。今回の例では5文字分の枠でabcという文字を右詰めで表示するものになります。フォーマット指定しの一覧の抜粋は下記になります。

フォーマット指定子意味
%s文字列
%d10進数数値
%i整数
%f浮動小数点
%jJSON形式

formatString関数の第二引数である"abc"は変換対象になるオブジェクトです。ここでいうオブジェクトとは「整数型(int)」や「文字列型(string)」「浮動小数点(float)」などを区別せずオブジェクトという1つの概念で扱う意味になります。

そのため、第二引数では文字列型以外にも整数型の数値であったり、その他の型を持つデータも入力することが可能になります。

終わりに

今回はGoogle Apps Scriptで日付・文字列・数値を変換する方法を紹介しました。

プログラムを書いていく上でバグを減らすために重要な概念である型。Google Apps ScirptではJavaScriptのエンジンを使用しています。JavaScriptは型の定義が甘い点がありますので、コードを書く人がしっかりと認識を持って変数に型を与えましょう。

最後まで読んでくれてありがとうございました!!

よかったらお気に入り登録をお願いします!!!!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です