Google Apps Script中ISO8601时区格式化异常问题咨询
问题解答
这不是Bug,是Java 7中SimpleDateFormat对XXX模式的设计行为——Google Apps Script的运行时基于Java 7,所以会出现这个情况。
原因说明
根据Java 7的SimpleDateFormat规范:
- 当格式化字符串包含毫秒部分(
.SSS)时,XXX会输出带冒号的时区格式(如-07:00) - 当格式化字符串不含毫秒部分时,
XXX会输出不带冒号的时区格式(如+0000)
这是该版本类库的既定行为,并非错误。
解决方案
如果你需要不带毫秒但时区带冒号的格式,可以改用ZZZZZ模式替代XXX:
const date = new Date(); const formatted = Utilities.formatDate(date, "UTC", "yyyy-MM-dd'T'HH:mm:ssZZZZZ"); // 输出示例:2022-06-05T22:00:00+00:00
ZZZZZ模式在Java 7的SimpleDateFormat中,无论是否包含毫秒部分,都会输出带冒号的时区格式,完全符合你的需求。
内容的提问来源于stack exchange,提问作者Bertrand BALDACH
相关产品推荐
相关产品推荐

