.Net 4.0引发无效的日期异常

.Net 4.0引发无效的日期异常,.net,vb.net,datetime,.net-4.5,.net,Vb.net,Datetime,.net 4.5,在.NET1.1中,以下代码未显示任何错误 Dim T As DateTime = "10\1\2010" 但在.NET4.5中,同样的代码显示错误,表示“无法识别的日期格式”。 为什么会这样?为什么.NET1.1隐式地将“10\1\2010”转换为“10/1/2010”,而不是.NET4.5。在.Net 4.5上可以实现吗?问题是使用日期分隔符“\”,您可以使用以下代码 Dim culture = CultureInfo.CurrentCulture.Clone()

在.NET1.1中,以下代码未显示任何错误

Dim T As DateTime = "10\1\2010"
但在.NET4.5中,同样的代码显示错误,表示“无法识别的日期格式”。
为什么会这样?为什么.NET1.1隐式地将“10\1\2010”转换为“10/1/2010”,而不是.NET4.5。在.Net 4.5上可以实现吗?

问题是使用日期分隔符“\”,您可以使用以下代码

        Dim culture = CultureInfo.CurrentCulture.Clone()
        culture.DateTimeFormat.DateSeparator = "\"
        Thread.CurrentThread.CurrentCulture = culture
        Thread.CurrentThread.CurrentUICulture = culture
        Dim T As DateTime = "10\1\2010"

是否可以全局定义自定义日期分隔符?(在我的例子中,\'是默认的日期分隔符),而不是必须在每个实例上指定区域性?我已经更新了我的答案,这里克隆了应用程序的当前区域性。我没有尝试过,但它应该可以用工作代码更新答案,因为CultureInfo.CurrentCulture是只读的,所以您可以设置Thread.CurrentThread的CurrentCulture和CurrentUICulture。它将使您的早期代码按原样执行。