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

如何将Google Sheets中IMPORTHTML导入的时间转换为GMT+8/Asia/Singapore时区

公式方案(轻量无需代码)

你可以根据导入的日期格式选择对应公式,首先确认你使用的IMPORTHTML公式要先修正URL空格,正确导入公式为:
=IMPORTHTML("https://wabetainfo.com/updates/", "table",2)

场景1:导入的日期为可识别的UTC时间格式

  • 先调整表格时区匹配目标时区:顶部菜单「文件」→「设置」→「常规」→「时区」选择「(GMT+08:00) 新加坡」,保存后表格会自动适配时区,直接引用导入的时间单元格即可。
  • 如果不想修改全局时区,直接加固定时区偏移即可,假设导入的时间在A列,转换公式为:
    =A1 + TIME(8,0,0)
    (Asia/Singapore全年无夏令时,固定GMT+8偏移,无需额外处理夏令时调整)

场景2:导入的日期为文本格式

先通过正则提取文本中的时间信息再做转换,公式示例:
=DATEVALUE(REGEXEXTRACT(A1, "[A-Za-z]{3} \d{1,2}, \d{4}")) + TIMEVALUE(REGEXEXTRACT(A1, "\d{1,2}:\d{2} [AP]M")) + TIME(8,0,0)
你可以根据实际导入的文本格式调整正则匹配规则,转换后可通过TEXT函数自定义输出格式,例如:
=TEXT(上述转换结果, "yyyy-mm-dd hh:mm:ss")


脚本方案(适配动态更新的自动转换场景)

如果导入的表格会定期新增行,可使用Google Apps Script批量自动转换,操作步骤如下:

  1. 点击顶部菜单「扩展程序」→「Apps Script」打开脚本编辑器
  2. 替换默认代码为以下内容:
function autoConvertToGMT8() {
  // 替换为你的工作表名称
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");
  // 假设导入的时间在第1列(A列),转换结果写入第2列(B列),可按需修改列号
  const lastRow = sheet.getLastRow();
  // 跳过表头从第2行开始读取
  const rawTimeRange = sheet.getRange(2, 1, lastRow - 1, 1);
  const rawTimeValues = rawTimeRange.getValues();
  const convertedTimes = rawTimeValues.map(row => {
    if (!row[0]) return [""];
    const originalDate = new Date(row[0]);
    // 加8小时时区偏移
    return [new Date(originalDate.getTime() + 8 * 3600 * 1000)];
  });
  // 写入结果并设置统一时间格式
  sheet.getRange(2, 2, lastRow - 1, 1)
    .setValues(convertedTimes)
    .setNumberFormat("yyyy-mm-dd hh:mm:ss");
}
  1. 保存项目后可手动点击运行测试,也可设置定时触发器:左侧菜单点击「触发器」→「添加触发器」,选择事件源为「时间驱动」,设置对应执行频率即可实现新增行自动转换。

注意:首次运行脚本需要按提示完成谷歌账号授权。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 19:06:04