为什么本地PC和服务器上的日期格式不同

时间:2020-06-19 07:54:16

标签: c# asp.net-core

我们正在开发 .NET Core 2.2 应用程序。我们注意到,本地主机上的日期格式与远程服务器上的日期格式不同。

  • 本地主机:18. 06. 2020 15:12:53
  • 远程IIS服务器:18.6.2020 15:12:53

日期使用*.cshtml显示在@Html.DisplayFor(model => model.CreatedAt)中。尽管本地主机和服务器使用相同的Startup.cs文件,为什么日期格式不同?我们还希望具有远程服务器在本地主机上生成的格式。

Startup.cs

public void ConfigureServices(IServiceCollection services)
{
    ...    
    services.Configure<RequestLocalizationOptions>(options =>
    {
        options.DefaultRequestCulture = new Microsoft.AspNetCore.Localization.RequestCulture("sl-SI");
        options.SupportedCultures = new List<CultureInfo> { new CultureInfo("sl-SI") };
    });
    ...
}

public void Configure(IApplicationBuilder app)
{
    ...
    app.UseRequestLocalization();
    ...
}

1 个答案:

答案 0 :(得分:0)

我遇到了类似的问题,下面的代码解决了我的问题。

像下面一样在Culture内应用Configure

public void Configure(IApplicationBuilder app)
{
    var cultureInfo = new System.Globalization.CultureInfo("sl-SI");
    System.Globalization.CultureInfo.DefaultThreadCurrentCulture = cultureInfo;
    System.Globalization.CultureInfo.DefaultThreadCurrentUICulture = cultureInfo;

    // your code
}

编辑,我建议使用culture中的appsettings.json值。这样,将来您就可以更新文化,而无需新的版本。只需更新appsettings.json并重新启动服务器即可使用。

public void Configure(IApplicationBuilder app)
{
    // Get Culture Info from appsettings and set Default culture for application.
    // If not found culture value from appsettings then use "sl-SI"
    var culture = Configuration.GetValue<string>("AppSettings:Culture") ?? "sl-SI";
    var cultureInfo = new System.Globalization.CultureInfo(culture);
    System.Globalization.CultureInfo.DefaultThreadCurrentCulture = cultureInfo;
    System.Globalization.CultureInfo.DefaultThreadCurrentUICulture = cultureInfo;

    // your code
}