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

new Date() vs. 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)), "GMT-8", "MM/d/yyyy"));

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