Избегайте преобразования DateTimeOffset в UTC время в Azure EventGrid

Я тестировал EventGrid Azure, и одна из вещей, которые я пытаюсь сделать, это отправить событие, в котором частью PayLoad является поле DateTimeOffset. Я публикую событие, используя стандартный EventGridClient:

using (var client = new EventGridClient(topicCredentials))
{
    await client.PublishEventsAsync(topicHostname, eventGridEvents).ConfigureAwait(false);
}

Я запустил Fiddler и убедился, что часть даты сериализуется, как я и ожидал: "CheckInDate": "2018-12-26T14:47:42.8-08:00"

Но когда мой подписанный прослушиватель функций Azure получает HttpTrigger и считывает содержимое сообщения, тот же элемент каким-то образом отформатирован как UTC: "CheckInDate": "2018-12-26T22:47:42.8+00:00".

Есть ли настройка или что-то, что мне нужно включить, чтобы сохранить исходное смещение?

1 ответ

Хотя работа с UTC в бэкэнде обычно является наилучшей практикой (поэтому я хотел бы сохранить ее, если нет особой необходимости работать с местным временем), я думаю, что вам следует попытаться сохранить смещение в выделенном поле и просто преобразовать он возвращается к соответствующему местному времени на принимающей стороне, используя это смещение.

Посмотрите на DateTimeOffset Struct о том, как вы могли бы сделать преобразования.

Надеюсь, поможет!

Другие вопросы по тегам