asp.net中的日期格式与控制台应用程序中的日期格式

asp.net中的日期格式与控制台应用程序中的日期格式,.net,datetime,format,culture,.net,Datetime,Format,Culture,我正在将.NET应用程序部署到另一台计算机 在控制台应用程序中 DateTime.Today.ToLongDateString(); 是 而在web应用程序中,值为 23 ذو الحجة 1430 < equivalent in higri calendar 23ذوالحج㶡1430

我正在将.NET应用程序部署到另一台计算机

在控制台应用程序中

DateTime.Today.ToLongDateString();

而在web应用程序中,值为

23 ذو الحجة 1430 < equivalent in higri calendar
23ذوالحج㶡1430<等同于希格里历法

web应用程序是如何从计算机中获取文化的,为什么它与控制台应用程序不同?

它是从计算机中获取文化的。看看你如何改变它。

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

你希望它处于哪种文化中

编辑:您的选项包括:

  • 设置计算机本身的区域性,影响整个窗口
  • 通常可能为.NET设置区域性-我不确定machine.config中是否有此功能。这不是我做过的事
  • 设置每个页面的区域性
  • 无论何时解析或格式化字符串,都要显式指定区域性

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

我得到了答案!这可能是ASPNET或IIS用户的注册表记录之一。通过使用regedit,我在其中一个用户international=阿拉伯语中找到了

Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
DateTime.Today.ToLongDateString();
感谢:

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


我希望区域性与控制台应用程序中的“en-US”相同。从哪里可以设置web应用程序的区域性?恐怕我不想从代码中更改区域性。我更想了解机器本身的语言环境设置。谢谢
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
DateTime.Today.ToLongDateString();
<configuration>
  <system.web>
    <globalization 
      culture="en-US"/>
  </system.web>
</configuration>