Неверное время UT C в файле календаря для MS Outlook - PullRequest
0 голосов
/ 20 февраля 2020

В моем приложении для управления событиями я создаю файл календаря, который отправляется с подтверждением регистрации по электронной почте. Приложение находится в. NET с C#. Я использую следующий код, чтобы получить время.


    sdate = row1.StartTime.ToUniversalTime().ToString("yyyyMMddThhmmssZ");
    edate = row1.EndTime.ToUniversalTime().ToString("yyyyMMddThhmmssZ");
    ...

и затем я добавляю его в файл календаря


    contents.Add("DTSTART:" + sdate);
    contents.Add("DTEND:" + edate);

Но проблема в том, что, если мое время окончания - 15:59 по местному времени, оно корректно закрывается. Но если это заканчивается в 16:00, тогда время окончания становится неправильным.

Кто-нибудь может направить меня?

Ниже приведены экраны записей календаря Outlook и данных файла календаря.

Правильный вывод enter image description here

Неверный вывод enter image description here

1 Ответ

0 голосов
/ 27 февраля 2020

Я наконец нашел решение. Это настолько просто, что разочаровывает, что я пропустил это.

Просто чтобы помочь другим. Мне просто нужно поставить заглавную букву 'H' в формате строки при преобразовании в строку. Итак, правильный код

sdate = row1.StartTime.ToUniversalTime().ToString("yyyyMMddTHHmmssZ");
edate = row1.EndTime.ToUniversalTime().ToString("yyyyMMddTHHmmssZ");
...