簡體   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