TSV 文字列, 日付データを yyyy-MM 形式に変換 (TSV String, Convert date data to yyyy-MM format)
指定したカラムの日付データを yyyy-MM または yyyy 形式に変換し、その値を全行の末尾に追加します。
Configs
  • C1:TSV文字列を入力してください *#{EL}
  • C2:TSV文字列の日付フィールドの列IDを入力してください(例 “3”) *#{EL}
  • C3:変換後の日付データのフォーマットを選んでください *
  • C4:列が追加されたTSVが入力される文字型項目を選んでください
Script (click to open)

main();

function main(){

    const tsv = configs.get('conf_tsv');
    const dateFieldId = Number(configs.get('conf_dateFieldId'));
    const dateFormat = configs.get('conf_dateFormat');
    const conf_appendedTsv = configs.get('conf_appendedTsv');

    const rowArray = tsv.trim().split('\n');
    const cells = [];
    let appendedTsv = '';
    for(let i = 0 ; i < rowArray.length ; i++){
        cells[i] = rowArray[i].split('\t');
        cells[i].push(convertDateFormat(cells[i][dateFieldId], dateFormat));
        appendedTsv += cells[i].join('\t');
        appendedTsv += '\n';
    }

    if(conf_appendedTsv !== ''){
        engine.setDataByNumber(conf_appendedTsv, appendedTsv.slice(0,-1));
    }
    
}

/*
文字の日付を指定されたフォーマットに変換して文字で返す。
@param dateStr {string} (e.g. "yyyy" "yyyy-MM")
@param dateFormat {string} (e.g. "2022-11-01")
@return Date.parse() で解釈できない文字の場合、'' が返されます。
*/
function convertDateFormat(dateStr, dateFormat){
    let date;
    try{
        date = new Date(dateStr);
        return dateFormatter.format(dateFormat, date);
    }catch(e){
        engine.log(String(e));
        engine.log('error: ' + dateStr + ' ('+ dateFormat +')');
        return '';
    }
}

/*
- 指定するフィールドの列IDはゼロからスタートします。
- 変換前の文字列は Date.parse() で解釈される場合に指定したフォーマットの日付文字列に変換されます。
    - YYYY-MM-DDTHH:mm:ss.sssZ (e.g. "2022-10-10T12:34:56.789" "2022-10-10" etc.)
- 指定されたフィールドの値が適切に変換されなかった場合、空文字('')が追加されます。
- The column ID of the date field you specify starts at zero.
- The string before conversion is converted to a date string of the specified format when interpreted by Date.parse().
- If the value of the specified field is not properly converted, an empty character ('') is added.
*/

Download

2022-11-17 (C) Questetra, Inc. (MIT License)
https://support.questetra.com/ja/addons/tsv-string-convert-date-to-yyyyMM/
Addonファイルのインポートは Professional でのみご利用いただけます
自由改変可能な JavaScript (ECMAScript) コードです。いかなる保証もありません。

Notes

  • 指定するフィールドの列IDはゼロからスタートします。
  • 変換前の文字列は Date.parse() で解釈される場合に指定したフォーマットの日付文字列に変換されます。
    • YYYY-MM-DDTHH:mm:ss.sssZ (e.g. “2022-10-10T12:34:56.789” “2022-10-10” etc.)
  • 指定されたフィールドの値が適切に変換されなかった場合、空文字(”)が追加されます。

Capture

See also

%d人のブロガーが「いいね」をつけました。