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",
}
我们正在尝试使用 .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",
}