在浏览器控制台中,我可以解析日期并以毫秒为单位获取时间:
new Date('2018-10-16 12:41:50.000000');
// => Tue Oct 16 2018 12:41:50 GMT+0200 (Central European Summer Time)
new Date('2018-10-16 12:41:50.000000').getTime();
// => 1539686510000
如果我在App脚本中执行相同的操作,则日期无法识别(默认为1970年纪元),getTime()
只是中断(NaN):
function test_date() {
Logger.log('new Date(date)');
Logger.log(new Date('2018-10-16 12:41:50.000000'));
Logger.log('getTime()');
Logger.log(new Date('2018-10-16 12:41:50.000000').getTime());
}
我丢失了某些内容还是只是new Date() / getTime()
在应用程序脚本中被破坏了?
我在Google表格中运行上述脚本
答案 0 :(得分:3)
Google Apps脚本使用RFC3339。因此2018-10-16 12:41:50.000000
无法直接解析new Date('2018-10-16 12:41:50.000000')
。这样,new Date('2018-10-16 12:41:50.000000')
与new Date('')
相同,并且两个结果都变为Thu Jan 01 01:00:00 GMT+01:00 1970
。为了解析日期,如何修改RFC3339的格式?
Logger.log(new Date('2018-10-16 12:41:50.000000'));
Logger.log(new Date('2018-10-16 12:41:50.000000').getTime());
Logger.log(new Date('2018-10-16T12:41:50.000Z'));
Logger.log(new Date('2018-10-16T12:41:50.000Z').getTime());
Tue Oct 16 12:41:50 GMT+02:00 2018
1.53968651E12
Logger.log(Session.getScriptTimeZone())
进行确认。new Date('2018-10-16T12:41:50')
也可以解析。如果这不是您想要的,对不起。
答案 1 :(得分:0)
代替这个
Logger.log(new Date('2018-10-16 12:41:50.000000').getTime());
使用此
Logger.log((new Date('2018-10-16 12:41:50.000000')).getTime());
答案 2 :(得分:0)
我是否缺少某些东西,还是App脚本中的新Date()/ getTime()只是被破坏了?
目前,Google Apps脚本和Chrome的JavaScript引擎不相同。另一方面,由于Google Apps Script在Google服务器上运行脚本,而Chrome在用户计算机上运行脚本,因此每种脚本都在不同的上下文中执行脚本。
我强调“此时”,因为在Google I / O 2018上宣布Google Apps脚本将在V8上运行。
相关