Я искал везде и не могу найти ответ.Я хотел бы понять, что происходит с тем, как я форматирую параметр url для даты и времени (с часовым поясом).
Вот ситуация:
- Программа-вызывающая программа имеет значение DateTime с UTCчасовой пояс.
- Приемник Json WebAPI (C #) работает на моем локальном компьютере с центральным часовым поясом.
- PoCreationDate - это тип DateTime (C #).Я не пишу код для разбора значения PoCreationDate.C # преобразовал его в объект DateTime для меня автоматически (через сериализацию?).
Вот тестовые случаи:
Случай 1 : Этот работает
http://******/api/ItemSource/GetItemSourceOption?OrganizationCode=OKC&PoCreationDate=2018-10-08T01:02:03.0000000-05:00
Случай 2 : этот не работает, и браузер отображает
<Error>
<Message>The request is invalid.</Message>
</Error>
http://******/api/ItemSource/GetItemSourceOption?OrganizationCode=OKC&PoCreationDate=2018-10-08T05:00:00.0000000+00:00
Обратите внимание на другое?один из них имеет -05: 00, другой - +00: 00.Мой часовой пояс является центральным (который сейчас равен -05: 00?)
Случай 3 : Моя текущая работа заключается в том, чтобы отформатировать его таким образом http://******/api/ItemSource/GetItemSourceOption?OrganizationCode=OKC&PoCreationDate=2018-10-08T05:00:00Z
=====================
Так что я просто пытаюсь понять, что здесь происходит, и эти мои мысли ...
Я верю, чтоиспользование формата Z является лучшим решением, поскольку значение DateTime (из источника) всегда в формате UTC.
О -05: 00 и +00: 00, они должны быть установлены в соответствии с получателемчасовой пояс (сервер назначения локальный часовой пояс)?Таким образом, в этом случае мой компьютер является приемником (WebAPI), и для него установлено значение Центрального часового пояса, поэтому это значение должно быть -05: 00, чтобы представлять текущее значение для Центрального часового пояса?
Пожалуйста, помогите мне понятьэтот.Спасибо.