【问题标题】:Microsoft Graph: Unable to update Start or End Date of an eventMicrosoft Graph:无法更新事件的开始或结束日期
【发布时间】:2020-08-19 04:33:40
【问题描述】:

我正在使用 Microsoft Graph .NET SDK 来更新 Outlook 事件。以下代码成功更新了事件的SubjectBody 属性。但是当我尝试更新事件的Start 和/或End 日期(属于dateTimeTimeZone 类型)时,我收到如下所示的错误:

问题:错误的原因可能是什么,我们该如何解决?请注意,该活动的有效本地开始日期和结束日期分别为8/21/2020 11:00AM8/21/2020 11:30AM。实际上,在调试模式下,VS2019 显示的是:Start.get returns null

错误截图

代码

  1. 如果我取消注释下面的Start = { DateTime = "2020-08-20T08:30:00.0000000", TimeZone = "UTC" } 行,就会出现上述错误。
  2. authProvider"{id}" 变量的值与错误无关,因为具有实际值的代码在没有代码的 Start =.... 行时可以正常工作。

...

GraphServiceClient graphClient = new GraphServiceClient( authProvider );

var @event = new Event
{
    Subject = "Test subject",
    Body= new ItemBody { Content = "Test body content"}
    //Start = { DateTime = "2020-08-20T08:30:00.0000000", TimeZone = "UTC" }
};

await graphClient.Me.Events["{id}"]
    .Request()
    .UpdateAsync(@event);

【问题讨论】:

    标签: c# microsoft-graph-api microsoft-graph-sdks microsoft-graph-calendar


    【解决方案1】:

    由于属性中使用的对象类型,您需要这样的东西

                var @event = new Event
            {
                Subject = "Test subject",
                Body = new ItemBody { Content = "Test body content" },
                Start = new DateTimeTimeZone {  DateTime = "2020-08-20T08:30:00.0000000", TimeZone = "UTC" } 
            };
    

    【讨论】:

    • 感谢您指出我没有使用属性中的对象类型。这实际上是问题所在。
    • 我有一个相关问题here 如果您有时间建议/评论它。谢谢。
    【解决方案2】:

    您需要按以下格式添加日期。希望它能解决您的问题。

    var @event = new Event
        {
            Subject = "Test subject",
            Body = new ItemBody { Content = "Test body content" },
            Start = new DateTimeTimeZone {  DateTime = "2020-08-20T08:30:00.0000000", TimeZone = "GMT Standard Time" } 
        };
    

    【讨论】:

    • 我确实需要使用UTC。问题是我没有在属性中使用对象类型。感谢您尝试提供帮助。非常感激。来自我的支持。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-19
    • 2023-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多