如何在ASP.Net Core中更改DateTime格式的路由?

时间:2018-10-24 07:36:41

标签: c# datetime asp.net-core .net-core datetime-format

我正在datetime属性中使用Route

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

但是它是“美国”格式,即“月日年”。

如何将其转换为“日-月-年”格式?

PS。我知道我可以使用“ yearmonthday”或“ year-month-day”等其他格式,但“ day-month-year-year”对我来说看起来更直观。

1 个答案:

答案 0 :(得分:2)

您可以改用如下路线:

[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);

    ...
}

诚然,这种糟糕透顶,但确实可以完成工作。 regex约束虽然很丑陋,但可以确保最终获得的任何值都可以用来构造DateTime对象。