我正在配置新服务器,并且正在遇到分析日期的问题,其中以下代码在旧服务器上效果完美,但在新服务器上却不起作用。
IFormatProvider fpCanada = System.Globalization.CultureInfo.CreateSpecificCulture("en-CA");
Convert.ToDateTime(strStartDate, this.fpCanada); //en-CA
错误:System.FormateXception:String未被识别为有效的DateTime。
我不想修改代码以使用TryParseExact
或注册表,因此我的结论是修改PC的区域设置以匹配旧服务器。
旧服务器
当前格式:英语(加拿大)
短日期:DD/mm/yyyy
新服务器
当前格式:英语(加拿大)
短日期:yyyy-mm-dd
将PC区域设置的日期格式更新为DD/mm/yyyy之后,我尝试重置应用程序池,但这似乎没有做任何事情。
// Still returns yyyy-MM-dd
System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat.ShortDatePattern
我假设PC的区域设置与.NET中的 PC区域和语言设置在.net 我怀疑您正在使用其个人配置文件的身份运行该应用程序,并且它正在使用'hkey_users.default control International下的注册表中存储的默认区域设置。ShortDatePattern
有直接相关性?