Почему формат даты отличается на локальном P C и сервере - PullRequest
2 голосов
/ 19 июня 2020

Мы разрабатываем приложение . NET Core 2.2 . Мы заметили, что формат даты на локальном хосте отличается от формата даты на удаленном сервере.

  • Localhost: 18. 06. 2020 15:12:53
  • Удаленный сервер IIS: 18.6.2020 15:12:53

Дата отображается в *.cshtml с использованием @Html.DisplayFor(model => model.CreatedAt). Почему формат даты отличается, хотя локальный хост и сервер используют один и тот же файл Startup.cs? Мы хотим иметь формат, который удаленный сервер создает на localhost.

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 голосов
/ 19 июня 2020

Я столкнулся с аналогичной проблемой, и приведенный ниже код решил мою проблему.

Применить 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
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...