代码之家  ›  专栏  ›  技术社区  ›  Joe

当输入日期是12月30日或31日时,Google脚本formatDate关闭1年

  •  1
  • Joe  · 技术社区  · 7 年前

    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
    

    我在这里做错什么了?

    1 回复  |  直到 7 年前
        1
  •  2
  •   Tanaike    7 年前