我在 Route
属性中使用 datetime
是这样的:
[Route("{givenDate:datetime}")]
但它是“美国”格式,即“月-日-年”。
如何将其转换为“日-月-年”格式?
附言。我知道我可以使用其他格式,例如“年-月-日”或“年-月-日”,但“日-月-年”对我来说看起来更直观。
最佳答案
您可以改为使用如下路线:
[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
对象。
关于c# - 如何在 ASP.Net Core 中更改路由中的 DateTime 格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52963326/