gpt4 book ai didi

c# - 为什么我的 MVC 应用程序中的日期格式错误?

转载 作者:行者123 更新时间:2023-12-02 23:31:56 25 4
gpt4 key购买 nike

我有一个在 Azure 中运行的 MVC5 应用程序,并且希望以英国格式显示日期,例如:

2016年12月15日

但它们总是以这种格式出现:

16年12月15日

我已将文化设置为 system.webWeb.config

<globalization culture="en-GB" uiCulture="en-GB" />

我知道这归结于我不了解 ASP.NET 中的全局化/文化,但我发现官方文档非常糟糕。

我花了几个小时试图弄清楚如何做到这一点,有人可以告诉我我做错了什么吗?

最佳答案

简单的解决方案

您可以在 global.asax.cs 文件中设置区域性,如下所示:

// using System.Globalization;

protected void Application_Start()
{
// Formatting numbers, dates, etc.
CultureInfo.DefaultThreadCurrentCulture = new CultureInfo("en-GB");

// UI strings that we have localized.
CultureInfo.DefaultThreadCurrentUICulture = new CultureInfo("en-GB");
}

调试

您可以用它来检查您的文化:

Thread.CurrentThread.CurrentCulture.Name // it should return "en-GB"

文档

<小时/>

注意:很难从你的问题中准确判断问题出在哪里。由于您的问题没有具体说明您遇到此问题的确切情况:

  • 服务器(例如: Controller )
  • 型号
  • 查看
  • 客户端

假设您在任何时候都没有改变区域性,并且没有在任何地方发生任何强制格式,那么上面的解决方案应该可以正常工作。

替代解决方案

以下是一些可供引用的替代方案:

1.) 重写 InitializeCulture 方法

protected override void InitializeCulture()
{
var hidden = this.Request.Form["hidden"];
var culture = this.Request.Form[hidden];
if (!string.IsNullOrWhiteSpace(culture))
{
this.Culture = culture;
this.UICulture = culture;
}

base.InitializeCulture();
}

2.) 在程序集属性中设置区域性

[assembly: AssemblyCulture("en-US")]
[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.MainAssembly)]

3.) 在页面属性中设置文化

<%@ Page Culture="en-US" UICulture="en-US" Title="..." %>

// Razor Symtax
@{
Page.Culture = "en-US"
Page.UICulture = "en-US"
Page.Title = "..."
}

4.) 您的web.configs 文件。

<globalization uiCulture="en-US" culture="en-US" enableClientBasedCulture="false" />

请注意,enableClientBasedCulture 设置为 false

关于c# - 为什么我的 MVC 应用程序中的日期格式错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44083811/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com