Utilitiesとは
日付の書式設定やJSON操作などが行えるクラス。
例えばUtilities.formatDate()を使用すれば日付のフォーマットが以下のように簡単に行える。
function myFunction() {
const now = new Date('2022-07-08 12:34:56')
console.log(Utilities.formatDate(now, 'JST', 'yyyy-MM-dd HH:mm:ss'))
// => 2022-07-08 12:34:56
}
この記事ではGASを使用するなら必ず覚えるべき7つのUtilitiesのメソッドについて解説している。
formatDate
冒頭でも記載した日付のフォーマット用のメソッド
前述のコードではJST(日本標準時)を使用したが、場合によってはGMT(グリニッジ標準時)を使用する。
function myFunction() {
const now = new Date('2022-07-08 12:34:56')
console.log(Utilities.formatDate(now, 'GMT', 'yyyy-MM-dd HH:mm:ss'))
// => 2022-07-08 03:34:56
}
日付をフォーマットするだけならformatDateで問題ないが、日にちの加算などの処理が入る場合はライブラリに以下のIDで検索してDay.jsを追加して利用したほうが良いです。
1ShsRhHc8tgPy5wGOzUvgEhOedJUQD53m-gd8lG2MOgs-dXC_aCZn9lFB
function myFunction() {
const day = dayjs.dayjs('2022-07-08')
console.log(day.add(1, 'day').format('YYYY/MM/DD'))
// => 2022/07/09
}
formatString
sprintfのように文字列のフォーマットを行うことができる。
function myFunction() {
console.log(Utilities.formatString('%6.2f', 1234))
// => '1234.00'
console.log(Utilities.formatString('%6s', 'foo'))
// => ' foo'
console.log(Utilities.formatString('%09d', 123))
// => '000000123'
}
getUuid
ランダムのUUIDを生成する。
function myFunction() {
console.log(Utilities.getUuid())
// => 'd292746a-588c-43aa-99c3-084710a36724' (例)
}
parseCsv
CSVの文字列を配列に変換する。
function myFunction() {
const csvString = "a,b,c\nd,e,f";
const data = Utilities.parseCsv(csvString);
console.log(data)
// [ [ 'a', 'b', 'c' ], [ 'd', 'e', 'f' ] ]
}
newBlob
Blobオブジェクトを作成する。
base64Encode
文字列をbase-64でエンコードされた文字列にエンコードする。
base64Decode
base-64でエンコードされた文字列を元の文字列にデコードする。
function myFunction() {
const blob = Utilities.newBlob('This is a pen.')
console.log(blob.getBytes())
// [ 84, 104, 105, 115, 32, 105, 115, 32, 97, 32, 112, 101, 110, 46 ]
const encoded = Utilities.base64Encode(blob.getBytes())
console.log(encoded)
// VGhpcyBpcyBhIHBlbi4=
const decoded = Utilities.base64Decode(encoded)
console.log(Utilities.newBlob(decoded).getDataAsString())
// 'This is a pen.'
}