google-apps-script - 当输入日期为 12 月 30 日或 31 日时,Google 脚本格式将日期关闭 1 年
问题描述
使用Utilities.formatDate时,它似乎在处理 12 月 30 日或 31 日时增加了一年。我创建了这个片段来演示这个问题:
function myFunction() {
start = new Date("29 Dec 2018")
for(i=0;i<4;i++){
Logger.log("Test:" + start.getDate() + "/" + (start.getMonth()+1) + "/" + start.getYear())
test(start)
start.setDate(start.getDate()+1)
}
}
function test(SrcDate) {
Logger.log("SrcDate: " + SrcDate)
Logger.log("toISOString: " + SrcDate.toISOString())
Logger.log("Zulu: " + Utilities.formatDate(SrcDate,"Zulu", "dd MMM YYYY HH:mm"))
Logger.log("New York: " + Utilities.formatDate(SrcDate,"America/New_York", "dd MMM YYYY HH:mm"))
Logger.log("SameZone: " + Utilities.formatDate(SrcDate,Session.getScriptTimeZone(), "dd MMM YYYY HH:mm")+ " -- " + Session.getScriptTimeZone())
}
这是运行生成的日志myFunction()
:
[18-08-17 18:59:42:045 PDT] Test:29/12/2018
[18-08-17 18:59:42:046 PDT] SrcDate: Sat Dec 29 2018 00:00:00 GMT-0800 (PST)
[18-08-17 18:59:42:047 PDT] toISOString: 2018-12-29T08:00:00.000Z
[18-08-17 18:59:42:048 PDT] Zulu: 29 Dec 2018 08:00
[18-08-17 18:59:42:049 PDT] New York: 29 Dec 2018 03:00
[18-08-17 18:59:42:051 PDT] SameZone: 29 Dec 2018 00:00 -- America/Los_Angeles
[18-08-17 18:59:42:052 PDT] Test:30/12/2018
[18-08-17 18:59:42:053 PDT] SrcDate: Sun Dec 30 2018 00:00:00 GMT-0800 (PST)
[18-08-17 18:59:42:053 PDT] toISOString: 2018-12-30T08:00:00.000Z
[18-08-17 18:59:42:054 PDT] Zulu: 30 Dec 2019 08:00
[18-08-17 18:59:42:055 PDT] New York: 30 Dec 2019 03:00
[18-08-17 18:59:42:056 PDT] SameZone: 30 Dec 2019 00:00 -- America/Los_Angeles
[18-08-17 18:59:42:057 PDT] Test:31/12/2018
[18-08-17 18:59:42:057 PDT] SrcDate: Mon Dec 31 2018 00:00:00 GMT-0800 (PST)
[18-08-17 18:59:42:058 PDT] toISOString: 2018-12-31T08:00:00.000Z
[18-08-17 18:59:42:059 PDT] Zulu: 31 Dec 2019 08:00
[18-08-17 18:59:42:059 PDT] New York: 31 Dec 2019 03:00
[18-08-17 18:59:42:061 PDT] SameZone: 31 Dec 2019 00:00 -- America/Los_Angeles
[18-08-17 18:59:42:061 PDT] Test:1/1/2019
[18-08-17 18:59:42:062 PDT] SrcDate: Tue Jan 01 2019 00:00:00 GMT-0800 (PST)
[18-08-17 18:59:42:062 PDT] toISOString: 2019-01-01T08:00:00.000Z
[18-08-17 18:59:42:063 PDT] Zulu: 01 Jan 2019 08:00
[18-08-17 18:59:42:064 PDT] New York: 01 Jan 2019 03:00
[18-08-17 18:59:42:065 PDT] SameZone: 01 Jan 2019 00:00 -- America/Los_Angeles
我在这里做错了什么?
解决方案
推荐阅读
- r - 合并两个数据集的困难
- elasticsearch - 日志存储中的弹性搜索过滤器是在同步模式还是异步模式下工作?
- c# - EDI 解串器以不同的格式工作
- html - React - 单击时添加或删除类
- javascript - 如何单击一个点并将其坐标保存在 Leaflet 中?
- azure - Azure 数据工厂 - 休息复制活动附加标头不起作用
- google-cloud-platform - Terraform GCP - 参数在 windows-startup-script-ps1 中传递
- c# - 如何在 ScheduledTask 继承中实现依赖关系 (Telerik Sitefinity)
- kotlin - Mockito 如何测试在方法内创建的实例是否正在调用方法
- javascript - Javascript 代码在 JsFiddle 上工作,但在我的主机上不工作