Я получаю дату в ASP.NET Core Controller следующим образом:
public class MyController:Controller{
public IActionResult Test(DateTime date) {
}
}
Фреймворк умеет разбирать дату, но только в английском формате. Когда я передаю 04.12.2017 в качестве параметра даты, я имею в виду 4 декабря 2017 года. Это будет обрабатываться как английская дата, поэтому мой объект даты получает значение 12 апреля 2017 года. Я попытался добавить немецкий только с использованием эта статья, а также эта, но безуспешно.
Что нужно сделать, чтобы 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();
}