【发布时间】:2021-02-11 19:58:50
【问题描述】:
考虑以下代码行:
DateTime d;
DateTime.TryParse("16-10-2020", out d);
在控制台应用程序中运行时,将返回日期时间 16-10-2020 00:00:00。使用文化 nl-NL,如我的 Windows 区域设置中所定义。但是,当在 64 位主机实例上的 Biztalk 2016 管道组件内运行时,16-10-2020 不是有效日期。经检查,似乎文化 en-US 用于解析日期字符串。我没有明确指定要在我的代码中使用的任何文化,因此希望 BizTalk 也使用 nl-NL。
两种方案都在同一台机器上的相同 .NET Framework 版本上运行。是什么解释了行为上的差异?
我在 BizTalk 服务器配置中找不到任何特定的文化配置。会不会是 BizTalk 在安装过程中将文化信息存储在我不知道的某个地方,但在区域设置更改时未能更新?只是猜测。有人吗?
【问题讨论】:
-
我不知道 biztalk 但如果你想要一种特定的文化,为什么不明确地使用呢?如果格式是固定的,您也可以更具体并使用
TryParseExact()。 -
查看以下内容以在 svc 文件中设置区域性:stackoverflow.com/questions/2056424/…
-
我猜 BizTalk 正在另一个具有不同区域设置的帐户下运行。也许this site 可以提供帮助。无论如何,我同意 41686d6564 你应该明确设置格式。
-
也许问题是不同的区域设置。您是否尝试使用 [InvariantCulture]? 【不变文化】:docs.microsoft.com/en-us/dotnet/api/…
-
确实,BTS 服务是在具有不同区域设置的服务帐户下运行的。路德感谢您的解决方案!
标签: c# datetime biztalk regional-settings biztalk-2016