IIS和控制台应用程序之间的DateTime.ToString("d",cultureInfo)输出不同

Tim*_*imo 6 c# culture datetime date tostring

我在用DateTime.Now.ToString("d", new CultureInfo("nl-NL")).

在本地IIS Web应用程序中,输出是正确的:

22-7-2016
Run Code Online (Sandbox Code Playgroud)

在控制台应用程序中,框架选择国际/文化不变的日期符号:

2016-07-22
Run Code Online (Sandbox Code Playgroud)

这是在同一台机器上,代码完全相同.我已经放置了断点,检查了所有输入,甚至尝试在此时立即在窗口中运行命令.在任何情况下,控制台应用程序都会出错.

任何人都可以解释导致差异的原因吗?

Eli*_*bel 5

IIS和控制台应用程序在不同的用户帐户下运行.如果您已自定义日期格式(例如,使用"区域"控制面板),CultureInfo格式化程序将仅在您的帐户中使用该自定义.

您可以创建一个CultureInfo忽略用户设置:

new CultureInfo("nl-NL", useUserOverride: false)
Run Code Online (Sandbox Code Playgroud)

您重置了帐户的区域设置:运行>> intl.cpl在下拉菜单>其他设置>重置中选择NL区域设置.