gpt4 book ai didi

c# - .ToShortDateString 返回与预期不同的文化格式

转载 作者:太空狗 更新时间:2023-10-29 21:01:32 25 4
gpt4 key购买 nike

这是给你的一个奇怪的。

我们有一个 c# 界面,从年初开始就可以在 Windows XP(32 位)PC 上正常运行。我们刚刚使用 SCCM 安装的应用程序将 PC 升级到 Windows 7(64 位)。

在最近一次运行中,文本区域中的日期开始以美国格式 (5/2/2014) 而不是英国格式 (02/05/2014) 出现。

正在使用的代码是:

string Lines = FromFormat.Text + " from " + FromFormat.Charge_From.ToShortDateString() + " to " + FromFormat.Charge_To.ToShortDateString() +".";

其中 FromFormat 是一个包含源数据的对象,Charge_From 和 Charge_To 是 DataTime 变量。

我们检查了 PC 的区域设置并创建了一个小测试应用程序来显示 .Net 中的 PC 设置,这两种设置都设置为 UK 格式测试应用代码:

label1.Text = DateTime.Now.ToString();
label2.Text = DateTime.Now.ToString("dd MMM yyyy");
label3.Text = DateTime.Now.ToShortDateString();
label4.Text = Thread.CurrentThread.CurrentCulture.EnglishName;

我知道我可以用 ToString("dd/MM/yyyy") 替换 ToShortDateString() 以强制使用正确的格式,但我的问题是为什么这是怎么回事?

这与Windows 7 升级有关吗?还是 SCCM?

提前致谢

最佳答案

ToShortDateString method使用 ShortDatePattern property"d" standard date and time format 相同您的 CurrentCulture

zh-CN 文化的 ShortDatePattern 属性是 dd/MM/yyyy

但是 en-US 文化的 ShortDatePattern 属性是 M/d/yyyy

这就是为什么您不能总是用 ToShortDateStringToString("dd/MM/yyyy") 替换的原因。它们并不总是相同的。和 "/" Custom Format Specifier具有特殊含义,因为用当前文化或指定文化的日期分隔符替换我

我怀疑您的区域设置在升级过程中发生了变化,这就是 ToShortDateString 方法生成不同结果的原因。

但由于您没有告诉我们您的CurrentCulture,我们永远不知道真正的问题是什么..

关于c# - .ToShortDateString 返回与预期不同的文化格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26278253/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com