我正在datetime
属性中使用Route
,
[Route("{givenDate:datetime}")]
但是它是“美国”格式,即“月日年”。
如何将其转换为“日-月-年”格式?
PS。我知道我可以使用“ yearmonthday”或“ year-month-day”等其他格式,但“ day-month-year-year”对我来说看起来更直观。
答案 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
对象。