Google Apps Script中如何从日期中删除时间戳

10

我正在使用这个方法来获取电子表格更新时创建的单元格的日期值:

setValue(new Date()).setNumberFormat('MM/dd/yyyy')

但是我收到的返回结果包括时间戳(即10/31/2015 22:16:55),而不仅仅是日期(10/31/2015)。
这会导致我的逻辑出现问题,因为该单元格引用了该逻辑。该逻辑是基于只引用日期的基本countif语句。我可以调整处理时间戳,但我宁愿不要有时间戳。看似很基础,但我找不到任何解决方案。我错过了什么吗?
2个回答

14

格式不会改变日期值仍然包含不同的时间事实。

要从日期值本身截断时间,请尝试以下操作:

setValue(new Date(new Date().setHours(0,0,0,0))).setNumberFormat('MM/dd/yyyy');

如果这个回答对您有帮助,您可以接受它作为答案,这样在查找线程时的人们就能看到已经找到了解决方案。谢谢。 - Robin Gertenbach
@Robin Gertenbach 这个答案会引起问题,因为你设置了手动格式化 "MM/dd/yyyy" 美国格式,这对于其他国家(其他语言环境)的用户来说是不可行的!我们需要一个动态格式化,例如 JAVA DateFormat.getDateInstance(DateFormat.LONG, local),其中 "DateFormat.LONG"(样式)与语言环境分离。 - Fares Droubi

5

您可以尝试像这样:

var formattedDate = Utilities.formatDate(new Date(), "GMT", "yyyy-MM-dd");

一个示例实现可能如下所示:

// where sheet is a predefined sheet, and getRange is cell F1
sheet.getRange(1,6).setValue(formattedDate).setNumberFormat('MM/dd/yyyy')

更多细节,请参考此处


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接