Избегайте преобразования 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 о том, как вы могли бы сделать преобразования.
Надеюсь, поможет!