google 应用脚本无法在对象中找到函数 getFullYear

google app scripting Cannot find function getFullYear in object

我的代码中有这一行:

var now= Utilities.formatDate(new Date(), SpreadsheetApp.getActive().getSpreadsheetTimeZone(), "EEE MMM d yyyy HH:mm:ss");

但是当我试图从现在开始获取年份时出现错误。

var yearnow= now.getFullYear();

错误是:"TypeError: Cannot find function getFullYear in object Wed Apr 5 2017 09:56:26"

有什么办法可以解决这个问题吗?

提前致谢!!

Utilities.formatDate returns 一个字符串。它没有 return 像 javascript 的 new Date() 这样的日期对象,因此您会收到该错误。

你可以做这样的事情来获得你的年份并在现在的字符串中保留你的格式

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 字符串中的日期、年份和月份。