.net - 即使文化在 .net core 2.1 中设置为英国,模型绑定中的日期也设置为美国格式
问题描述
.net core 2.1 中日期的模型绑定是以美国格式设置日期值,即使文化信息设置为英国格式。
任何想法 ?
这是我的启动文件代码片段
var enGbCulture = new CultureInfo("en-GB");
CultureInfo.DefaultThreadCurrentCulture = enGbCulture;
CultureInfo.DefaultThreadCurrentUICulture = enGbCulture;
app.UseRequestLocalization(new RequestLocalizationOptions
{
DefaultRequestCulture = new RequestCulture(enGbCulture),
SupportedCultures = new List<CultureInfo> { enGbCulture },
SupportedUICultures = new List < CultureInfo > { enGbCulture },
RequestCultureProviders = new List<IRequestCultureProvider>
{
new QueryStringRequestCultureProvider { },
new CookieRequestCultureProvider { },
},
});
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
下面是打印正确的文化信息
<div>Current Culture: @CultureInfo.CurrentCulture.DisplayName</div>
<div>Current UI Culture: @CultureInfo.CurrentUICulture.DisplayName</div>
<div>Current Thread Culture: @Thread.CurrentThread.CurrentCulture.DisplayName;</div>
示例项目在 GitHub 上
解决方案
从任何输入字段获取日期后,只需在前端以您想要的格式显示您的日期,只需将其转换为英式格式。
试试这个代码来改变日期格式。
string date = model.DateOfBirth.tostring();
//convert datetime to string and pass it to following code
DateTime.ParseExact(date, "M/dd/yyyy hh:mm:ss tt", CultureInfo.InvariantCulture);
推荐阅读
- excel - How to test for instance of httpheader using vba
- ios - Print to printer via Bluetooth(non Airprint) in iOS?
- angular - Angular
is displaying the parent twice - ios - Environment Variable not set: ARCHS || getting error in apple m1
- python - 如何将散点图添加到 plt.imshow
- c++ - 如何使编译器版本特定于 ifdef?
- c++ - 使用 scanf_s 写入 const char* 内存
- devops - 使用 Github 操作发送电子邮件
- javascript - 如何发送多个 html 表单以将信息存储在单个 Google 工作表选项卡中?使用应用程序脚本创建的单个 webapp 的多个表单
- r - R:将环境中的所有功能保存为“txt”(记事本)文件