sac*_*tyr 8 format date google-sheets google-apps-script
我对Google Apps脚本很陌生,所以请耐心等待.
我正在从Google Sheets上的银行收取每日利率,我使用以下代码为A5:F5中包含的费率添加新行,其中A列包含日期.
function recordHistory() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Interest Rates");
var source = sheet.getRange("A5:F5");
var values = source.getValues();
values[0][0] = Utilities.formatDate(new Date(), "GMT+10:00", "yyyy-MM-dd");
sheet.appendRow(values[0]);
};
Run Code Online (Sandbox Code Playgroud)
我的问题是 - 尽管我已将日期格式指定为"yyyy-MM-dd",但我的新行中A列中的日期是以"M/dd/yyyy"格式创建的.
我尝试使用Google表格中的下拉格式菜单将整个列A预格式化为"yyyy-MM-dd",但如果我运行上面的代码,我的新行仍然是"M/dd/yyyy".
好像我的代码完全忽略了Utilities.formatDate.仅供我从这里获得上述代码.
Mog*_*dad 10
该Utilities.formatDate()实用程序格式化一个javascript字符串.但是,当写入电子表格时,Google表格会解释新的数据行,以确定数据类型和适当的格式,就像您通过用户界面输入一样.
由于您有一个可识别的日期字符串,因此Google表格决定它是一个日期,将其存储,并应用默认日期格式.
您有两种方法可以使电子表格中的日期符合您的格式需求.
强制它被解释为String,即使它看起来像日期.
cell.setValue(Utilities.formatDate(new Date(), "GMT+10:00", "''yyyy-MM-dd"));
// ^^ force string literal
Run Code Online (Sandbox Code Playgroud)设置单元格的日期格式.这会将单元格的值保留为日期,这对计算很有用.
日期格式遵循SimpleDateFormat规范.
// Cell A1 contains a date
var cell = SpreadsheetApp.getActiveSheet().getRange("A1");
cell.setNumberFormat('yyyy-mm-dd');
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
34786 次 |
| 最近记录: |