【问题标题】:date format in asp.net versus in console applicationasp.net 中的日期格式与控制台应用程序中的日期格式
【发布时间】:2009-12-10 08:26:51
【问题描述】:

我正在将 .NET 应用程序部署到另一台机器上。

在控制台应用程序中,

的值
DateTime.Today.ToLongDateString();

10 December 2009

在 Web 应用程序中,该值为

23 ذو الحجة 1430 < equivalent in higri calendar

Web 应用程序如何从中获取文化,为什么它与控制台应用程序不同?

【问题讨论】:

    标签: .net datetime format culture


    【解决方案1】:

    在 web.config 或 machine.config 中,您可以通过 globalization 元素为 ASP.Net 应用程序指定默认区域性。

    <configuration>
      <system.web>
        <globalization 
          culture="en-US"/>
      </system.web>
    </configuration>
    

    【讨论】:

      【解决方案2】:

      它从机器中获取。请参阅 here 如何更改它。

      【讨论】:

        【解决方案3】:

        这可能是机器本身的文化 - 你说你正在部署到另一台机器。

        希望它属于哪种文化?

        编辑:您的选择是:

        • 为机器本身设置文化,影响整个 Windows
        • 可能为 .NET 设置一般文化 - 我不确定这在 machine.config 中是否可用。这不是我曾经做过的事情。
        • 为每个页面设置文化
        • 在解析或格式化字符串时明确指定区域性

        说实话,最后一个是侵入性最小的。像String.Parse 等大多数方法都有IFormatProvider 参数的重载。您可以将其指定为相关的CultureInfo

        【讨论】:

        • 我希望文化与控制台应用程序中的“en-US”相同。我可以从哪里设置 Web 应用程序的文化?
        【解决方案4】:

        我得到了答案!它可能是 ASPNET 或 IIS 用户的注册表记录之一。通过使用 regedit,我在其中一位用户中找到了 international = arabic

        感谢: Change Default Locale in IIS 6.0

        【讨论】:

          【解决方案5】:
          Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
          DateTime.Today.ToLongDateString();
          

          【讨论】:

          • 恐怕我不想从代码中改变文化。我宁愿了解机器本身的语言环境设置在哪里。不过谢谢
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-11-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-05-12
          相关资源
          最近更新 更多