C#方法DateTime.TryParse在BizTalk与控制台应用程序的同一台计算机上的行为不同

问题描述

请考虑以下代码行:

DateTime d;
DateTime.TryParse("16-10-2020",out d);

在控制台应用程序中运行时,返回日期时间16-10-2020 00:00:00。使用文化nl-NL,如我的Windows区域设置中所定义。但是,在64位主机实例上的Biztalk 2016管道组件中运行时,2020年10月10日不是有效日期。经检查,似乎使用美国文化来解析日期字符串。我没有在代码中明确指定要使用的区域性,因此希望BizTalk也可以使用nl-NL。

这两种方案都在同一台计算机上的相同.NET Framework版本上运行。是什么解释了行为上的差异?

我在BizTalk服务器配置中找不到任何特定的区域性配置。可能是BizTalk在安装过程中在我不知道的地方存储了区域性信息,但是当区域设置更改时却无法更新?只是猜测。有人吗?

解决方法

BizTalk服务帐户的区域设置与我的用户不同,这解释了行为上的差异。

如果预先知道格式,最好使用TryParse精确。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...