Google apps script 为什么getYear()返回2018年的日期(2019年1月1日)?

Google apps script 为什么getYear()返回2018年的日期(2019年1月1日)?,google-apps-script,Google Apps Script,使用getYear()时,我得到了错误的年份值 我有一个带有“01/01/2019”或=Date(2019,1,1)值的单元格,当我编写自定义函数并使用getYear()时,它返回2018,而不是2019。为什么? function textMESCAT(data) { var mesos = ['Gener', 'Febrer', 'Març', 'Abril', 'Maig', 'Juny', 'Juliol', 'Agost', 'Setembre', 'Octubre', 'Novemb

使用
getYear()
时,我得到了错误的年份值

我有一个带有“01/01/2019”或
=Date(2019,1,1)
值的单元格,当我编写自定义函数并使用
getYear()
时,它返回2018,而不是2019。为什么?

function textMESCAT(data) {
var mesos = ['Gener', 'Febrer', 'Març', 'Abril', 'Maig', 'Juny', 'Juliol', 'Agost', 'Setembre', 'Octubre', 'Novembre', 'Desembre'];

var textmes = mesos[data.getMonth()] + '-' + data.getYear();

return textmes;
}
我预计2019年的产量。输出是DeSambre-2018,但这是错误的,它显示的是前一天。

我在调用textMESCAT(新日期(2019,1,1))时收到“Gener-119”


尝试使用Date.prototype.getFullYear()而不是Date.prototype.getYear(),因为后者不稳定。

因为您的本地时区比UTC晚1(或更多)小时,所以仍然类似于2018-12-31 23:00:00。我不熟悉谷歌应用程序脚本,因此我无法告诉您如何处理本地时间与UTC的对比。请将此作为问题的答案,而不是评论。答案非常有用!我在代码中做了一些更改,它可以正常工作。函数textMCAT(data){var mesos=['genr','Febrer','Març','Abril','Maig','Juny','Juliol','Agost','Setembre','Octubre','novenbre','Desembre'];var meslocal=Utilities.formatDate(data,SpreadsheetApp.getActive().getSpreadsheetTimeZone(),'M”);var anylocal=Utilities.formatDate(data,spreadsheetsheetapp.getActive()).getSpreadsheetTimeZone(),“yyyy”);var textmes=mesos[parseInt(meslocal)-1]+'-'+anylocal;return textmes;}@Josep将其添加为以下答案