插入谷歌日历API v3将时间提前1小时

时间:2018-04-29 21:58:13

标签: javascript google-api google-calendar-api google-api-js-client

我将以下日期插入Google日历:{ "cmd": ["cmd", "/c", "del", "${file/\\.cs/\\.exe/}", "2>NUL", "&&", "csc", "/nologo", "/out:${file/\\.cs/\\.exe/}", "$file"], "file_regex": "^(...*?)[(]([0-9]*),([0-9]*)[)]", "variants": [ { "name": "Run", "cmd": ["cmd", "/c", "start", "cmd", "/c", "${file/\\.cs/\\.exe/}"] } ], } 。这样可以正常工作,但它会在上午10点而不是上午9点显示日期。

日期格式为UTC。我试过把时区甚至是“雷克雅未克”的伎俩。

2018-05-10T09:00:00.000Z

enter image description here

2 个答案:

答案 0 :(得分:0)

通过在caledar上执行cleandar.get,你插入到你会看到这样的东西

npm install --save-dev babel-plugin-module-resolver
npm install --save-dev eslint-import-resolver-babel-module

请注意日历本身的时区。如果您将事件插入的时区与日历的时区不同,那么当您查看事件时,时间将更正为日历的时间。

答案 1 :(得分:0)

@DalmTo指出了我正确的方向。要解决此问题,我必须将我的日期对象从UTC重新创建到正确的时区。

我用moment timezone来做这件事。

  let utcDate = moment.utc(booking.date).format('YYYY-MM-DD HH:mm')
  let timezone = business.regionality ? business.regionality.timezone : 'Europe/London'
  let reformattedDate = mtz.tz(utcDate, timezone).toISOString()