Nano Hash - криптовалюты, майнинг, программирование

Тип ресурса события Microsoft Graph: проблема даты и времени начала и окончания обновления

Я использую Microsoft Graph .NET SDK для обновления Outlook События. Следующий код обновляет даты правильно, но обновляет Start и End раз, отставая на четыре часа. Когда я захожу в свой календарь Outlook, он показывает измененное время как 04:30 для начала и 05:30 для конца instead of, показывая 08:30 для начала и 09:30 для конца. Вопрос: почему? Примечание. Я нахожусь в часовом поясе Восток США, но я не думаю, что этот код имеет к нему какое-либо отношение, если только я здесь что-то не упускаю.

Код:

Значения переменных authProvider и "{id}" не имеют отношения к проблеме, поскольку код с реальными значениями работает штраф, поскольку он обновляет событие без ошибок.

.....
GraphServiceClient graphClient = new GraphServiceClient( authProvider );
    
var @event = new Event
{
    Subject = "Test subject",
    Body= new ItemBody { Content = "Test body content"}
    Start = new DateTimeTimeZone { DateTime = "2020-08-29T08:30:00.0000000", TimeZone = "UTC" }
    End = new DateTimeTimeZone { DateTime = "2020-08-29T09:30:00.0000000", TimeZone = "UTC" }
};
await graphClient.Me.Events["{id}"]
    .Request()
    .UpdateAsync(@event);

Ответы:


1

Если вы обновляете встречи и устанавливаете часовой пояс на всемирное координированное время, а затем просматриваете ту же встречу, где часовой пояс Outlook является восточным, тогда такое поведение кажется правильным. Как правило, вы должны проверить часовой пояс встречи (или почтовый ящик, который вы изменяете), а затем сопоставить его в своем обновлении (особенно если вы имеете дело с несколькими часовыми поясами). Другая вещь, которая может повлиять на часовые пояса, - это заголовок Outlook.Prefer https://docs.microsoft.com/en-us/graph/api/user-list-events?view=graph-rest-1.0.&tabs=http например установить это

        List<Option> options = new List<Option> { new HeaderOption("Prefer", "outlook.timezone=\"Eastern Time\"") };

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

Дополнительный

Хорошо, вот быстрый модульный тест, который я создал, который создает встречу, а затем обновляет ее. В Outlook это показывает мне исправленное обновленное Datetime по восточному поясному времени. Если я заменю UTC на Восточное стандартное время в деталях события, тогда он изменит часовой пояс собрания на UTC, поэтому также сместится время (что, я думаю, ваша проблема, если вы используете UTC в мероприятии). Я предлагаю вам взглянуть на встречу с клиентом Outlook Desktop, так как он покажет вам часовой пояс, связанный с встречей, где веб-клиент просто дает вам скорректированное значение.

            List<Option> options = new List<Option> { new HeaderOption("Prefer", "outlook.timezone=\"Eastern Standard Time\"") };
        DateTimeTimeZone start = new DateTimeTimeZone { DateTime = "2020-08-29T08:30:00.0000000", TimeZone = "UTC" };
        var @event = new Event
        {
            Subject = "Test subject",
            Body = new ItemBody { Content = "Test body content" },
            Start = new DateTimeTimeZone { DateTime = "2020-08-29T07:30:00.0000000", TimeZone = "Eastern Standard Time" },
            End = new DateTimeTimeZone { DateTime = "2020-08-29T08:30:00.0000000", TimeZone = "Eastern Standard Time" }
        };
        var newEvent = await GraphServiceClient.Me.Events
            .Request(options)
            .AddAsync(@event);
        @event = new Event
        {
            Subject = "Updated subject",
            Body = new ItemBody { Content = "Test body content" },
            Start = new DateTimeTimeZone { DateTime = "2020-08-29T08:30:00.0000000", TimeZone = "Eastern Standard Time" },
            End = new DateTimeTimeZone { DateTime = "2020-08-29T09:30:00.0000000", TimeZone = "Eastern Standard Time" }
        };
        await GraphServiceClient.Me.Events[newEvent.Id]
       .Request(options)
       .UpdateAsync(@event);
28.08.2020
  • По-прежнему такое же поведение. Я даже пробовал с Eastern Standard Time вместо Eastern Time, но результат тот же. На этот раз я также изменил время (чтобы убедиться, что он действительно обновляет время) на 9:00 и 10:00. Он действительно обновился, но все еще отстает на четыре часа (теперь отображается календарь (5:00 и 6:00). Мой календарь - это просто онлайн-календарь Outlook; и если я вручную создаю встречу там, он правильно устанавливает время как восточное стандартное время США. . 28.08.2020
  • Ваше предложение изменить часовой пояс с UTC на восточное стандартное время сработало (спасибо). Также заметил, что он работал с использованием List<Option> options = new List<Option> { new HeaderOption("Prefer", "outlook.timezone=\"Eastern Standard Time\"") }; или без него 28.08.2020
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..