【发布时间】:2014-12-04 08:58:18
【问题描述】:
这对你来说很奇怪。
我们有一个 c# 界面,自今年年初以来一直在 Windows XP(32 位)PC 上运行,没有问题。我们刚刚使用 SCCM 安装的应用程序将 PC 升级到 Windows 7(64 位)。
在最近一次运行中,文本区域中的日期开始以美国格式(2014 年 5 月 2 日)而不是英国格式(2014 年 2 月 5 日)显示。
正在使用的代码是:
string Lines = FromFormat.Text + " from " + FromFormat.Charge_From.ToShortDateString() + " to " + FromFormat.Charge_To.ToShortDateString() +".";
FromFormat 是一个包含源数据的对象,Charge_From 和 Charge_To 是 DataTime 变量。
我们检查了电脑的区域设置并创建了一个小测试应用程序来显示来自 .Net 的电脑设置,这两个设置都设置为英国格式 测试应用代码:
label1.Text = DateTime.Now.ToString();
label2.Text = DateTime.Now.ToString("dd MMM yyyy");
label3.Text = DateTime.Now.ToShortDateString();
label4.Text = Thread.CurrentThread.CurrentCulture.EnglishName;
我知道我可以将 ToShortDateString() 替换为 ToString("dd/MM/yyyy") 以强制使用正确的格式,但我的问题是为什么会发生这种情况?
这与 Windows 7 升级有关吗?还是 SCCM?
提前致谢
【问题讨论】:
-
你的
CurrentCulture是什么?是en-GB还是en-US? -
“我知道我可以将 ToShortDateString() 替换为 ToString("dd/MM/yyyy") 以强制格式正确” 不正确,@987654328 @ 还将使用您当前文化的日期分隔符,而不是
/。 -
据我所知,所有 PC 都在使用 en-GB
标签: c# .net datetime windows-7 sccm