我正在尝试完全按照用户在 Windows 控制面板的“区域和语言”页面上指定的格式设置日期和时间。只要我使用一般格式字符串,例如“g”表示一般短日期/时间,这对于用户所做的大多数选择都是半自动的。
但我至少遇到过一个例外。如果我选择格式:“英语(美国)”和短时间:“hh:mm tt”,那么格式会忽略“hh”部分,而是使用“h:mm tt”,即单个没有前导零-数字小时。
// Just testing - to be removed
string s1 = CultureInfo.CurrentCulture.DateTimeFormat.ShortTimePattern;
string s2 = CultureInfo.CurrentUICulture.DateTimeFormat.ShortTimePattern;
将上述代码添加到我的程序中可以确认 .Net 使用的是“h:mm tt”而不是“控制面板”页面上指定的“hh:mm tt”。
我可以做些什么来让它使用指定的设置,或者自己确定设置,然后显式获取格式以使用“hh:mm tt”?