如何为Google Sheets Apps Script的单元格输入指定时区且禁用自动转换
Google Sheets带时区日期输入避免自动转换解决方案
- 方案1:提前设置单元格格式为纯文本
选中需要输入内容的目标单元格/单元格区域,点击顶部菜单栏「格式」→「数字」→ 选择「纯文本」,之后再输入带时区的日期时间内容,系统不会做任何解析转换,完全保留输入的原始内容。
注意:如果已经先输入内容再修改格式,需要重新输入一次内容才会生效,之前已被解析为时间戳的内容不会自动恢复为原始输入。 - 方案2:输入时前置英文单引号
无需提前调整单元格格式,输入内容前先输入一个英文单引号',再输入完整的带时区日期即可,例如输入'08/27/2021 12:15 PM EDT。单引号不会在单元格中显示,仅会保留后续的原始输入内容,不会触发系统的时间解析转换逻辑。 - 方案3:Apps Script批量写入时强制为字符串格式
若通过Apps Script批量导入内容,需先将目标区域设置为纯文本格式,再直接写入字符串类型的日期内容,不要传入Date对象,避免触发时区转换,示例代码如下:// 获取目标表格的对应区域,示例为当前工作表的A1到A10区域 const targetRange = SpreadsheetApp.getActiveSheet().getRange('A1:A10'); // 将目标区域设置为纯文本格式 targetRange.setNumberFormat('@STRING@'); // 直接写入字符串格式的带时区日期,不要传入Date对象 targetRange.setValues([ ['08/27/2021 12:15 PM EDT'], // 其余需写入的内容按行填写即可 ]);
内容的提问来源于stack exchange,提问作者Crystal
相关产品推荐
相关产品推荐

