Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何设置项目的本地化,以便DateTime.Parse使用它?_C#_Datetime_Localization - Fatal编程技术网

C# 如何设置项目的本地化,以便DateTime.Parse使用它?

C# 如何设置项目的本地化,以便DateTime.Parse使用它?,c#,datetime,localization,C#,Datetime,Localization,我们的软件部署到控制面板中设置为美国境内的服务器上,格式为MM/dd/yyyy。因此,代码中的DateTime.TryParse实例使用了机器的本地格式,而不是我们的开发机器(UK dd/MM/yyyy)的格式 我可以看到我可以强制它使用特定的本地化,但我想做的是在全局文件或web/app配置中弹出一些东西,使其始终使用UK格式,这样我就不必为每个DateTime操作指定它 知道我是怎么做的吗?如果我能在VisualStudio中配置它,将其强制应用到新项目中,这样人们就不会忘记。据我所知,桌面

我们的软件部署到控制面板中设置为美国境内的服务器上,格式为MM/dd/yyyy。因此,代码中的DateTime.TryParse实例使用了机器的本地格式,而不是我们的开发机器(UK dd/MM/yyyy)的格式

我可以看到我可以强制它使用特定的本地化,但我想做的是在全局文件或web/app配置中弹出一些东西,使其始终使用UK格式,这样我就不必为每个DateTime操作指定它


知道我是怎么做的吗?如果我能在VisualStudio中配置它,将其强制应用到新项目中,这样人们就不会忘记。据我所知,桌面应用程序没有这样的设置。但您可以将其放入应用程序的所有入口点:

var culture = new System.Globalization.CultureInfo("en-GB");
System.Threading.Thread.CurrentThread.CurrentCulture = culture;
System.Threading.Thread.CurrentThread.CurrentUICulture = culture;
System.Globalization.CultureInfo.DefaultThreadCurrentCulture = culture;
System.Globalization.CultureInfo.DefaultThreadCurrentUICulture = culture;
然而,这将使本地化变得不可能。我更喜欢在解析方法中显式指定区域性。

试试这个 如果要为Web应用程序中的所有页面设置默认区域性和用户界面区域性,请使用此方法

<configuration>
   <system.web>
      <globalization culture="en-GB" uiCulture="Fr-FR"/>
   </system.web>
</configuration>

写一个TryParseUkDateTime的实用方法?这是最简单的方法。。。除此之外,我们可能还需要知道您正在编写的应用程序的类型。以下是规范,它将涉及各种应用程序、mvc、windows窗体、windows服务和WCF服务。我希望我能在global.asax或config中找到一些东西。我会更加自信,每次都是显式的——在适当的情况下通过常用的助手方法——而不是使用app.config。我也会尽量减少日期/字符串转换的次数,例如,永远不要将它们用于数据库存储。您是否会将其引入公司的代码开发指南中?第3章,所有开发人员在使用DateTime.Parse时都会显式声明本地化,以确保预期的行为?