ASP.Net Core API DateTime с индикатором времени - PullRequest
0 голосов
/ 12 марта 2019

У меня есть API, который принимает дату в виде строки запроса. Дата снабжена индикатором часового пояса. Когда я передаю дату со знаком «+» в часовом поясе, я получаю значение даты по умолчанию.

Я попробовал очень простой API, который берет только дату из Query String параметра.

Когда я передаю дату

2019-03-12 07: 00: 00 + 05: 00

Я получаю сообщение об ошибке:

"Значение '2019-03-12 07:00:00 05:00' недопустимо."

Похоже, "+" не интерпретируется. С "-", как

2019-03-12 07: 00: 00-05: 00

Хорошо работает

Похоже, мы не можем передать "+" в строке запроса. Как вы думаете, чтобы передать дату и время с индикатором зоны в строке запроса?

Ответы [ 2 ]

2 голосов
/ 12 марта 2019

Вы должны urlencode +, так как + означает «пробел» в URL.На самом деле это должно произойти для вас автоматически, если вы используете помощник по тегам или что-то вроде Html.Action, Url.Action и т. Д. Если вы передаете его вручную, то вы можете вручную его кодировать.

0 голосов
/ 12 марта 2019

Знак плюс в строке запроса означает пробел. %2B - это версия + в кодировке URL и то, что вы хотите.

В зависимости от того, где вы создаете этот URL, вы можете использовать System.Net.WebUtility.UrlEncode(...), чтобы экранировать любые другие символы, которые нуждаются в этой обработке, а также знак плюс.

...