gpt4 book ai didi

javascript - Google Apps 脚本和 Google 日历的 DST 问题

转载 作者:行者123 更新时间:2023-11-30 06:18:44 25 4
gpt4 key购买 nike

我正在创建一个用于管理类(class)的学校项目,我在时区和 DST 方面有问题,这是我的代码:

javascript
dejt = new Date(thisYear, 8, day, beginTime, endTime, 0, 0);
dejt.toLocaleString("en-US", {timezone: "Europe/Belgrade"});

然后我通过一些函数直到:

javascript
function makeCalendar(name, begin, end, calendar) {
var eventSeries = CalendarApp.getCalendarById(calendar).createEventSeries(
name,
begin,
end,
CalendarApp.newRecurrence()
.addWeeklyRule().interval(2).until(endDate)
);
}

在 10 月 29 日之前一切正常,之后一切都提前一小时移动。

How do I manage DST?

编辑:

将脚本设置为 GMT(无夏令时)后,事情变得更加一致,每个日期都为 +00:00

Logs:
[19-02-12 11:30:15:809 CET] Sun Feb 17 00:00:00 GMT+00:00 2019
[19-02-12 11:30:15:810 CET] Mon Feb 18 00:00:00 GMT+00:00 2019
[19-02-12 11:30:24:051 CET] Mon Sep 03 14:00:00 GMT+00:00 2018
[19-02-12 11:30:24:503 CET] Mon Sep 03 14:50:00 GMT+00:00 2018

现在唯一的问题是,重复发生的事件只会改变夏令时的时间(不是新错误,以前就是这样)。

编辑:

我发现的新东西:如果您手动编辑事件,则会有时区框;我的脚本使它成为 UTC,但我可以手动编辑或删除它。这里的问题是我需要手动完成。

我还在 Google 文档中找到了 .setTimeZone(string): here , 和 here

现在的问题是我无法让它工作,无论我尝试什么事件都会和 UTC 同步

最佳答案

好的,在对此进行一些深入研究之后,看起来有类似解决方案的东西。

Google Calendar 将查看脚本的时区,除非它在您传递给它的 Date 对象中指定。在你的情况下它不是(toLocaleString 不会修改原始对象,如果它会,你会在将字符串传递到 createEventSeries 时遇到错误)。无论如何,您的脚本的时区似乎是贝尔格莱德,并且有夏令时、时间变化等。

最后,可能的解决方案。我不知道日历服务是否允许不考虑夏令时,所以试图解决这个问题:

// function to convert date to UTC so that it retains original hours value
function convertDateToUTC(date, timezoneOffset) {
return new Date(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), date.getUTCHours() + timezoneOffset, date.getUTCMinutes(), date.getUTCSeconds());
}
// 1 is the timezone offset from GMT
makeCalendar('test event', convertDateToUTC(beginDate, 1), convertDateToUTC(endDate, 1), calendar.getId());

函数 convertDateToUTC 基于 this answer .

使用它,我得到了(开始时间原本是早上 7 点):

calendar screenshot

关于javascript - Google Apps 脚本和 Google 日历的 DST 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54636774/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com