【发布时间】:2011-12-23 10:50:39
【问题描述】:
我有一个 VSTO Outlook 加载项。此插件显示带有 DateTimePicker 控件的 winforms 窗口,用于选择一天中的时间。我想设置类似于当前 Windows 时间格式的时间格式(如任务栏的时钟)。
为此,我使用以下代码:
this.dateTimePicker1.Format = DateTimePickerFormat.Custom;
this.dateTimePicker1.CustomFormat = System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.ShortTimePattern;
在 Windows 区域和语言设置中,我在格式和位置中使用法语,在键盘和语言中使用英语。
因此,在我的表单中,我看到的是 7:00 而不是 19:00。
CurrentCulture、CurrentUICulture 和 InstalledUICulture 返回“h:mm tt”短时格式,并且文化名称为 en-US。
我的问题是如何确定 Windows 以法语格式 (HH:mm) 显示时间并以这种格式在 DateTimePicker 中显示时间?
--编辑
当我在单独的控制台应用程序中运行以下代码时
Console.WriteLine(CultureInfo.CurrentCulture.DateTimeFormat.ShortTimePattern);
Console.WriteLine(CultureInfo.CurrentCulture.DateTimeFormat.LongTimePattern);
Console.WriteLine(CultureInfo.CurrentCulture.DateTimeFormat.FullDateTimePattern);
它返回
HH:mm
HH:mm:ss
dddd d MMMM yyyy HH:mm:ss
在 Outlook 加载项中类似的代码返回美国格式:
h:mm tt
h:mm:ss tt
dddd, MMMM dd, yyyy h:mm:ss tt
Outlook 设置为使用默认的 Windows 语言(英语)。
【问题讨论】:
标签: .net vsto datetimepicker cultureinfo datetime-format