new Date() 与 Utilities.formatDate(new Date())

问题描述

谁能告诉我为什么这段代码会产生两个不同的日期?

let Now = new Date();  // today's date (1/2/2021)
Logger.log(Now);       // Sat Jan 02 09:42:47 GMT-08:00 2021
Logger.log(new Date(Now.getTime()-(2*1000*60*60*24)));   // Thu Dec 31 09:42:47 GMT-08:00 2020
Logger.log(Utilities.formatDate(new Date(Now.getTime()-(2*1000*60*60*24)),"GMT-8","MM/d/YYYY"));  // 12/31/2021

为什么 Utilities.formateDate() 会将日期从 12/31/2020 更改为 12/31/2021

******** 解决方案 *********

将日期格式从 "MM/d/YYYY" 更改为 "MM/d/yyyy"

解决方法

这只是一个简单的格式问题。 Look here

这个: Logger.log(Utilities.formatDate(new Date(now.getTime()-(2*1000*60*60*24)),"GMT-8","MM/d/YYYY"));

应该是这样的:

Logger.log(Utilities.formatDate(new Date(now.getTime()-(2*1000*60*60*24)),"MM/d/yyyy"));

换句话说,只需将大写 Y 的小写字母 y 设为大写即可。