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

如何在Google Sheets中将2021-08-17T22:42:00.000Z转为YYYY-MM-DD格式

Google Sheets ISO 8601时间字符串转纯日期方法

下面提供3种可直接落地的方案,转换后得到的日期值都支持正常做日期计算:

方案1:单行单元格转换

如果只需要转换单个或少量单元格,假设待转换内容存储在A1单元格,任选空白单元格输入以下公式即可:

  • 截断提取法(兼容性最好):
    =DATEVALUE(LEFT(A1,10))
    直接提取字符串前10位的YYYY-MM-DD片段,通过DATEVALUE转为Google Sheets可识别的日期数值
  • 完整解析法:
    =INT(TO_DATE(A1))
    先把整个ISO字符串转为带时间的日期值,用INT去掉代表时间的小数部分,保留纯日期值

转换后选中输出单元格,在顶部菜单「格式」→「数字」中选择「日期」,即可显示为YYYY-MM-DD格式。

方案2:整列自动批量转换

如果需要一次性转换整列内容,且后续新增数据也要自动处理,在目标列第一行的空白单元格输入数组公式即可:
=ARRAYFORMULA(IF(A:A="",,DATEVALUE(LEFT(A:A,10))))
公式会自动跳过空单元格,整列的转换结果会一次性生成,不需要逐行拖动填充。

方案3:原地永久转换(无需保留原字符串)

如果要直接把原列的字符串替换为纯日期值,可以用Apps Script实现:

  1. 点击顶部菜单「扩展程序」→「Apps Script」打开脚本编辑器
  2. 粘贴以下代码,修改getRange参数为你实际的目标列范围:
function convertISOToPureDate() {
  const sheet = SpreadsheetApp.getActiveSheet();
  // 下面的"A:A"替换为你存储ISO字符串的列范围
  const targetRange = sheet.getRange("A:A");
  const values = targetRange.getValues();
  const convertedValues = values.map(row => {
    const cellVal = row[0];
    if (typeof cellVal === 'string' && cellVal.includes('T') && cellVal.endsWith('Z')) {
      return [new Date(cellVal.slice(0,10))];
    }
    return row;
  });
  targetRange.setValues(convertedValues);
  // 统一设置单元格格式为YYYY-MM-DD
  targetRange.setNumberFormat("yyyy-mm-dd");
}
  1. 点击运行按钮,完成授权后即可完成整列的原地转换。

注意:原数据为字符串类型,直接修改单元格显示格式无法实现转换,必须通过上述方法转为日期数值后才能正常进行日期差计算、日期范围筛选等操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 11:00:05