【发布时间】:2019-06-07 18:59:28
【问题描述】:
我的工作表中有一个具有自定义日期格式的列。格式设置在整个列上。如果从工作表中将日期值放在列中,它会按照我指定的方式显示格式。但是,如果我使用 Google Apps 脚本追加一个新行,它将不遵守格式。
在通过 Google Apps 脚本添加行之前:
| Timestamp | Message |
|---------------------------|---------|
| 2019-01-01 @ 13:12:32.013 | test |
添加一行后:
| Timestamp | Message |
|---------------------------|---------|
| 2019-01-01 @ 13:12:32.013 | test |
| 1/2/2019 14:51:31 | test2 |
用于添加行的 Google Apps 脚本代码:
SpreadsheetApp.getActiveSheet().appendRow([new Date(), "test2"])
有没有办法以表格按照格式规则对其进行格式化的方式获取要添加的日期?
我发现的唯一方法是将数据转换为表示自 1899 年 12 月 30 日以来的天数的整数,但这似乎很 hacky。
var dateSerial = ((new Date()) - (new Date(1899, 11, 30))) / 1000 / 60 / 60 / 24;
【问题讨论】:
-
你试过 setNumberFormat() 吗?或者可能是 Utilities.formatDate()?
-
这两个都需要从 JavaScript 设置格式。如果工作表中的格式发生更改,那么我将不得不更新代码。我希望能够在需要时/如果需要更改工作表中的格式,而无需更新代码。
-
我猜只是不一样。我更喜欢在代码中这样做。
-
@Cooper 我正在编写代码,其他人将使用该表。我不希望代码在/如果他们更改日期格式时中断。
标签: javascript date google-apps-script format