Как изменить формат DateTime в маршруте в ASP.Net Core? - PullRequest
0 голосов
/ 24 октября 2018

Я использую атрибут datetime в Route следующим образом:

[Route("{givenDate:datetime}")]

, но в «американском» формате это «месяц-день-год».

Как я могу преобразовать его в формат «день-месяц-год»?

PS.Я знаю, что могу использовать другие форматы, такие как «год-месяц» или «год-месяц-день», но «день-месяц-год» выглядит для меня более интуитивно понятным.

1 Ответ

0 голосов
/ 24 октября 2018

Вместо этого вы можете использовать маршрут вроде:

[Route("{day:regex(^[[0-2]][[0-9]]|3[[0-1]]$)}-{month:regex(^0[[0-9]]|1[[0-2]]$)}-{year:regex(^\\d{{4}}$)}")]

И затем изменить свое действие на что-то вроде:

public IActionResult Foo(int day, int month, int year)
{
    var givenDate = new DateTime(year, month, day);

    ...
}

По общему признанию, это отстой, но он действительно получаетРабота выполнена.Ограничения регулярных выражений, хотя они и ужасны, гарантируют, что в конечном итоге любые проходящие значения будут работать для создания объекта DateTime с.

...