在谷歌 appScript 中获取今天的日期
Posted
技术标签:
【中文标题】在谷歌 appScript 中获取今天的日期【英文标题】:Get today date in google appScript 【发布时间】:2014-09-13 16:51:53 【问题描述】:如何在 google appscript 上获取今天的日期?
我需要编写代码来在单元格中输入今天的日期。
function changeDate()
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(GA_CONFIG);
var date = //Today´s date!?!?!!?
var endDate = date;
sheet.getRange(5, 2).setValue(endDate);
【问题讨论】:
【参考方案1】:Google Apps 脚本是 javascript,日期对象以 new Date()
启动,所有 JavaScript 方法都适用,see doc here
【讨论】:
【参考方案2】:Utilities.formatDate(new Date(), "GMT+1", "dd/MM/yyyy")
您可以通过交换值来更改格式。
dd = day(31) MM = 月 (12) - 区分大小写 yyyy = 年(2017 年)function changeDate()
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(GA_CONFIG);
// You could use now Date(); on its own but it will not look nice.
var date = Utilities.formatDate(new Date(), "GMT+1", "dd/MM/yyyy")
var endDate = date
【讨论】:
这不是一个好主意,Utilities.formatDate()
返回的值是一个字符串,而不是一个日期对象......你将无法用它做任何事情......改变显示在单元格中设置格式,同时保持日期对象属性使用setNumberFormat(numberFormat) 进行完整解释,同时使用this doc【参考方案3】:
Date
对象用于处理日期和时间。
日期对象是用new Date()
创建的
var now = new Date();
now - 当前日期和时间对象。
function changeDate()
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(GA_CONFIG);
var date = new Date();
sheet.getRange(5, 2).setValue(date);
【讨论】:
这是一个非常糟糕的主意,您将日期转换为字符串,然后您会丢失工作表单元格中的所有日期对象属性。显然,您是从包含不必要参数(例如工作表名称)的脚本中获取的... 我已经更新了脚本。现在我没有将日期对象转换为字符串。我在单元格中得到的确切日期为 11/27/2017 11:05:01。但是以前版本的代码将日期对象转换为字符串。我得到了日期的完整字符串 Mon Nov 27 2017 11:04:46 GMT+0530 (IST)。正如您提到的,我没有得到任何不必要的参数,例如工作表名称。如果我有任何错误,请纠正我。 那么,@Sergeinsas 如何获取今天的日期对象? 就这样:var date = new Date();【参考方案4】:以下可用于获取日期:
function date_date()
var date = new Date();
var year = date.getYear();
var month = date.getMonth() + 1; if(month.toString().length==1)var month =
'0'+month;
var day = date.getDate(); if(day.toString().length==1)var day = '0'+day;
var hour = date.getHours(); if(hour.toString().length==1)var hour = '0'+hour;
var minu = date.getMinutes(); if(minu.toString().length==1)var minu = '0'+minu;
var seco = date.getSeconds(); if(seco.toString().length==1)var seco = '0'+seco;
var date = year+'·'+month+'·'+day+'·'+hour+'·'+minu+'·'+seco;
Logger.log(date);
【讨论】:
【参考方案5】:function myFunction()
var sheetname = "DateEntry";//Sheet where you want to put the date
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetname);
// You could use now Date(); on its own but it will not look nice.
var date = Utilities.formatDate(new Date(), "GMT+5:30", "yyyy-MM-dd");
//var endDate = date;
sheet.getRange(sheet.getLastRow() + 1,1).setValue(date); //Gets the last row which had value, and goes to the next empty row to put new values.
【讨论】:
请添加一些关于您的答案的描述,考虑添加与您更改的特定代码行或需要更改的原因相关的详细信息。谢谢!【参考方案6】:最简单的方法,你可以使用 JavaScript 日期对象,即 new Date()。
function changeDate()
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(GA_CONFIG);
var date = new Date();
sheet.getRange(5, 2).setValue(date);
但是你会得到整个时间对象。您只需将电子表格中的格式更改为时间或日期,随心所欲。
【讨论】:
以上是关于在谷歌 appScript 中获取今天的日期的主要内容,如果未能解决你的问题,请参考以下文章
使用 JDBC executeBatch() 通过 appscript 批量插入 Cloud SQL,耗时过多
如何在谷歌应用脚本中将段落 html 字符串转换为没有 html 标签的纯文本?