Google 日历 API - Create/Edit 事件时间不准确

Google Calender API - Create/Edit Event Times Not Accurate

我们正在尝试使用 .Net/C# 在我们的 Google 日历中创建活动。当我们创建事件时,它们总是比预定时间晚 5 小时(例如,事件从 12:00 PM-11:59 PM 变为 7:00am – 6:59pm)。

以下是我们创建活动的方式:

//creating new event object based off of the Google API Event type
            Event newEvent = new Event() {
                //assigning values for events
                Summary = (@event.bandName + " " + @event.eventStart.ToShortTimeString() + "-" + @event.eventEnd.ToShortTimeString() + " $" + @event.ticketPrice).ToUpper(),
                Description = bandLink + " " + @event.description,
                Start = new EventDateTime()
                {
                    DateTime = @event.eventStart
                },
                End = new EventDateTime()
                {
                    DateTime = @event.eventEnd
                },
                
            };

我们试过做类似的事情:

DateTime start = new DateTime(@event.eventStart, DateTimeKind.Local);

然后将此值分配给开始时间

Start = new EventDateTime()
                {
                    DateTime = start
                },

但我们仍然得到原始问题(12:00 PM-11:59 PM 的事件变为 7:00am – 6:59pm)。

我们的摘要显示 google 日历中的正确时间,只有 Start/End 事件的时间显示错误。

根据documentation

start.dateTime

The time, as a combined date-time value (formatted according to RFC3339). A time zone offset is required unless a time zone is explicitly specified in timeZone.

这意味着您需要

  • 显式设置 timeZone 属性 或
  • 将时区偏移量合并到dateTime

样本:

Start = new EventDateTime()
 {
   DateTime = new DateTime(2021, 12, 01, 11, 11, 0),
   TimeZone = "America/Los_Angeles",
 }