在.NET Core 2.1中,即使将文化设置为英国格式,模型绑定中的日期仍会被设置为美国格式。

11
在 .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上

2个回答

0

在前端以你想要的格式展示日期,只需要从任何输入字段中获取日期后,将其转换为英国格式。

尝试使用以下代码更改日期格式。

 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);

-1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接