Google apps script google应用程序脚本在对象中找不到函数getFullYear

Google apps script google应用程序脚本在对象中找不到函数getFullYear,google-apps-script,spreadsheet,google-sheets-api,Google Apps Script,Spreadsheet,Google Sheets Api,我的代码中有这一行: var now=Utilities.formatDatenew日期,SpreadsheetApp.getActive.getSpreadsheetTimeZone,EEE MMM d yyyy HH:mm:ss 但当我试图从现在开始计算这一年时,我犯了一个错误 var dearneow=now.getFullYear 错误为:TypeError:在对象Wed Apr 5 2017 09:56:26中找不到函数getFullYear 有办法解决这个问题吗 提前谢谢你 Util

我的代码中有这一行:

var now=Utilities.formatDatenew日期,SpreadsheetApp.getActive.getSpreadsheetTimeZone,EEE MMM d yyyy HH:mm:ss

但当我试图从现在开始计算这一年时,我犯了一个错误

var dearneow=now.getFullYear

错误为:TypeError:在对象Wed Apr 5 2017 09:56:26中找不到函数getFullYear

有办法解决这个问题吗


提前谢谢你

Utilities.formatDate返回一个字符串。它不会返回日期对象,比如javascript的new date,因此您会得到该错误

您可以这样做来获得您的年份,并将您的格式保留在now字符串中

var now= Utilities.formatDate(new Date(), SpreadsheetApp.getActive().getSpreadsheetTimeZone(), "EEE MMM d yyyy HH:mm:ss");
var dt = new Date(now)  // This not the same as new Date()
var year = dt.getFullYear()
希望有帮助

编辑

使用以下功能:

function getDate(){
 var now= Utilities.formatDate(new Date(), SpreadsheetApp.getActive().getSpreadsheetTimeZone(), "EEE MMM d yyyy HH:mm:ss");
 var dt = new Date(now)
 Logger.log(now)
 Logger.log(dt.getFullYear())
 Logger.log(dt.getDate())
 Logger.log(dt.getMonth() + 1) //add 1 to compensate for the month index starting at 0, i.e Jan = 0, Feb =1, March = 2.... Dec = 11
}
我得到这个日志

[17-04-04 20:35:03:355 CDT] Tue Apr 4 2017 20:35:03
[17-04-04 20:35:03:355 CDT] 2017.0
[17-04-04 20:35:03:356 CDT] 4.0
[17-04-04 20:35:03:356 CDT] 4.0

如您所见,它保留了代码第一行中设置的now字符串中的日期、年份和月份

谢谢!!但在这种情况下,我不能保持我的时区。它采用默认时区。我怎样才能得到我所在时区的日、月、年?我有点迷路了!新的日期对象是使用var now创建的,因此它现在将保留字符串的日期、月份和年份。不确定它如何默认为默认时区!没错!!多谢各位。我使用了getDay函数,这就是为什么我不能得到正确的一天。