繁体   English   中英

使用 microsoft graph api 创建全天事件时,总是缺少最后一天

[英]When creating all-day-events using microsoft graph api the last day is always missing

我正在使用以下代码创建一个 microsoft graph 事件对象:

Event @event = new Event
{
  Subject = subject,
  Body = new ItemBody
  {
    ContentType = BodyType.Html,
    Content = $"<div id=\"BookingId\">{ id }</div><div id=\"CheckSum\">{ checkSum }</div>"
  },
  Start = new DateTimeTimeZone
  {
    DateTime = begin.ToString("yyyy-MM-ddTHH:mm:ss", new CultureInfo("de-AT")),
    TimeZone = TimeZoneInfo.Local.Id
    },
    End = new DateTimeTimeZone
    {
        DateTime = end.ToString("yyyy-MM-ddTHH:mm:ss", new CultureInfo("de-AT")),
        TimeZone = TimeZoneInfo.Local.Id
    },
    Location = new Location
    {
        DisplayName = location
    },
    Attendees = new List<Attendee>(),
    IsAllDay = true
};

当此代码在我的机器上运行时,时区设置为“西欧标准时间”。 事件将像这样添加:

await graphClient.Groups[group.Id].Events
   .Request()
   .AddAsync(@event);

到目前为止,这是有效的,但我所有的事件都比我最初为结束时间设置的时间少了一天。 还试图增加一些小时,但后来我得到一个例外,说 allDayEvents 必须在午夜开始和结束。 但是将它们设置为午夜会删除事件的最后一天。

最简单的解决方法似乎总是将一天添加到结束日期。 但是,如果这只是一个夏令时问题,然后我会在冬天多一天呢? 我没有找到将夏令时添加到开始和结束日期的任何可能性。

附加信息:我在上面的代码中使用的日期时间对象已经将“00:00:00”作为时间。 这也可以从上面的文字看出,使用不同的时间会出现异常。 因此,链接问题的答案并没有解决我的问题。 所以,没有必要否决我的问题。

创建“全天”事件时,开始和结束时间应该只指定日期,而不是日期和时间(或者更准确地说,时间应该是00:00:00 ):

Start = new DateTimeTimeZone
{
    DateTime = begin..ToString("yyyy-MM-ddT00:00:00"),
    TimeZone = TimeZoneInfo.Local.Id
},
End = new DateTimeTimeZone
{
    DateTime = end.ToString("yyyy-MM-ddT00:00:00"),
    TimeZone = TimeZoneInfo.Local.Id
},

与这个问题非常相似: Creating All Day Event failed

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM