見出し画像

GAS|スプレッドシートのシート内から取得した全日付データを指定した文字列に変換(フォーマット)する|formatDate|Utilities|Google Apps Script|開発裏話

マンガポスト日本版」では、Google ドライブ内に保存している「コミックス発売日情報」を参照して、その日付を基に毎日自動配信(ツイート)しています。

この「コミックス販売日情報」は、スプレッドシートで作ったものです。

Google ドライブ内に保存しているスプレッドシートのシート内から全データを取得すると、セルの日付データが全て、勝手に以下のような「データ型」になってしまっていました

instanceof Date
Wed May 01 2019 09:00:00 GMT+0900 (JST)

セルに入力していた本来の日付データは「2019/5/1」という文字列です。このままでは困りますので、以下のようにして、全て元の文字列に戻します(フォーマットします)

/**
 * Formats date.
 * 
 * @param values — a two-dimensional array of values
 * @param timeZone — the output timezone of the result
 * @param format — a format per the SimpleDateFormat specification
 * @return Object[][] — a two-dimensional array of values (date as a formatted string)
 */
function formatAllDate(values, timeZone, format) {
  return values.map(function(row) {
    var array = [];
    row.map(function(column, index) {
      if (column instanceof Date) {
        column = Utilities.formatDate(column, timeZone, format);
      }
      array[index] = column;
    });
    return array;
  });
}

引数である全データ「values — a two-dimensional array of values」は、以下によってシート内から取得したものです。

マンガポスト日本版

マンガポスト日本版の Twitter 公式アカウントです。
漫画(まんが)・コミックの新刊情報を毎日配信中!

コーヒーブレイク

人類で初めて火星に降り立った宇宙飛行士たちから交信が途絶えた。命をかけて救出に向かうべく、選抜試験に集まった4千人。未知へと挑むその中に、伝説のトラック乗りの息子・三河度胸がいた!

この記事が参加している募集

この記事が気に入ったらサポートをしてみませんか?