netcore liunx docker修改默认的Datetime format

问题 :core项目发布在liunx docker下,使用了ORM用拉姆达表达式来设置where条件,当条件中有datetime类型的时候默认生成出来的sql语句用的DateTime.ToString() 如下例

SELECT * FROM #table WHERE CreateTime >='01/01/2020 00:00:00'

这样执行mysql或者mssqlserver会报错,但又不方便改ORM底层的代码

解决办法:

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
        {
            //设置CultureInfo
            var zh = new CultureInfo("zh-CN");
            zh.DateTimeFormat.FullDateTimePattern = "yyyy-MM-dd HH:mm:ss";
            zh.DateTimeFormat.LongDatePattern = "yyyy-MM-dd";
            zh.DateTimeFormat.LongTimePattern = "HH:mm:ss";
            zh.DateTimeFormat.ShortDatePattern = "yyyy-MM-dd";
            zh.DateTimeFormat.ShortTimePattern = "HH:mm:ss";
            IList<CultureInfo> supportedCultures = new List<CultureInfo>
            {
                zh,
            };
            app.UseRequestLocalization(new RequestLocalizationOptions
            {
                DefaultRequestCulture = new RequestCulture("zh-CN"),
                SupportedCultures = supportedCultures,
                SupportedUICultures = supportedCultures
            });
}

PS: 主要下docker里还需要设置好时区,方法自行搜索

猜你喜欢

转载自www.cnblogs.com/nickchou/p/12160166.html