我在 ASP.NET Core 控制器中获取日期的方法如下:
public class MyController:Controller{
public IActionResult Test(DateTime date) {
}
}
该框架能够解析日期,但仅支持英文格式。当我将04.12.2017作为日期参数传递时,我指的是2017年12月4日。它会被解析为英文日期,因此我的日期对象的值是2017年4月12日。我尝试添加德语,使用这篇文章和这篇文章,但没有成功。需要做什么才能使ASP.NET Core自动按正确的德语格式解析日期?
更新:我尝试设置RequestLocalizationOptions。
services.Configure<RequestLocalizationOptions>(opts =>
{
var supportedCultures = new[]
{
new CultureInfo("de-DE"),
};
opts.DefaultRequestCulture = new RequestCulture("de-DE");
// Formatting numbers, dates, etc.
opts.SupportedCultures = supportedCultures;
// UI strings that we have localized.
opts.SupportedUICultures = supportedCultures;
});
仍然无法工作。我调用example.com/Test?date=12.04.2017,并在我的调试器中得到了以下结果:
public IActionResult Test(DateTime date) {
string dateString = date.ToString("d"); // 04.12.2016
string currentDateString = DateTime.Now.ToString("d"); // 14.01.2016
return Ok();
}
DateTime.ParseExact
函数以你想要的精确方式进行解析。 - Lasse V. Karlsen