You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置DateTimeFormater将2021-08-04T06:00:00.000Z转为08-04-2021格式

日期格式转换解决方案

有两种可选实现位置,可根据实际需求选择:

方案1:在Google Sheets服务端脚本处理,直接返回格式化后的日期

不需要修改前端代码,修改服务端逻辑即可:

var data = SpreadsheetApp.getActiveSheet().getDataRange().getValues();

// 新增日期格式化逻辑,遍历所有单元格处理日期类型值
var formattedData = data.map(row => {
  return row.map(cell => {
    // 判断单元格值是否为日期类型
    if (cell instanceof Date) {
      // 格式化为MM-dd-yyyy格式
      var month = ("0" + (cell.getMonth() + 1)).slice(-2);
      var day = ("0" + cell.getDate()).slice(-2);
      var year = cell.getFullYear();
      return `${month}-${day}-${year}`;
    }
    return cell;
  })
})

// 把response中的原始数据替换为格式化后的formattedData即可
var response = {data: formattedData};

return ContentService
.createTextOutput(JSON.stringify(response))
.setMimeType(ContentService.MimeType.JSON);
}

注意:需要保证Google Apps Script的项目时区和你表格的时区一致,避免出现日期差1天的问题,时区配置可在脚本项目设置页调整。

方案2:在前端处理,不需要修改服务端代码

直接修改前端逻辑,渲染数据时做格式转换:

var try_num = 5
var delayInMilliseconds = 500;
function getVarFromUrl(url) { return url.match(/[?](.*)/)[1]; }

// 新增日期格式化工具函数
function formatDate(val) {
  // 判断是否为ISO格式的日期字符串
  if (/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$/.test(val)) {
    const date = new Date(val);
    const month = ("0" + (date.getMonth() + 1)).slice(-2);
    const day = ("0" + date.getDate()).slice(-2);
    const year = date.getFullYear();
    return `${month}-${day}-${year}`;
  }
  return val;
}

function fetch_data(url) {
    fetch(url)
    .then(response => {
        if (response.ok) {
            return response.json()
        } else if(response.status === 404) {
            return Promise.reject('error 404')
        } else {
            return Promise.reject('some other error: ' + response.status)
        }
    })
    .then(data => main(data))
    .catch(error => start());
}

function start() {
    setTimeout(function() {
        if (try_num >= 1) {
            try_num -= 1
            fetch_data('https://script.google.com/macros/s/AKfycbztu69qk4fkFqVqSHLC2hIxuN9xiHFJgsYr-nMvhGQungJN0S6r/exec')
        }
    }, delayInMilliseconds)
}

function main(data) {
    console.log(data)
    var rows = data[0].data
    console.log(rows)
    for (var row_num in rows) {
        document.getElementById("table").innerHTML += "<tr id='" + row_num + "'></tr>"
        console.log(rows[row_num])
        for (var element_num in rows[row_num]) {
            console.log(rows[row_num][element_num])
            // 调用格式化方法处理内容后再渲染
            const content = formatDate(rows[row_num][element_num])
            document.getElementById(row_num).innerHTML += "<th>" + content + "</th>" 
        }
    }
}

window.onload = function() {
    start()
}

如果你的表格里日期是固定列,可直接判断列索引再处理,不需要每个单元格都做正则校验,性能会更好。

内容的提问来源于stack exchange,提问作者J2 K

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 05:45:03