У меня есть надстройка VSTO Outlook. Эта надстройка показывает окно winforms с контролем DateTimePicker, оно используется для выбора времени суток. Я хочу установить формат времени, аналогичный текущему формату времени 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 показывает время во французском формате (ЧЧ: мм) и показывать время в DateTimePicker в этом формате?
- редактировать
Когда я запускаю следующий код в отдельном консольном приложении
Console.WriteLine(CultureInfo.CurrentCulture.DateTimeFormat.ShortTimePattern);
Console.WriteLine(CultureInfo.CurrentCulture.DateTimeFormat.LongTimePattern);
Console.WriteLine(CultureInfo.CurrentCulture.DateTimeFormat.FullDateTimePattern);
возвращается
HH: мм
HH: мм: сс
дддд д мммм гггг чч: мм: сс
В надстройке Outlook аналогичный код возвращает американский формат:
ч: мм тт
ч: мм: сс тт
дддд, мммм дд, гггг ч: мм: сс тт
Outlook настроен на использование языка Windows по умолчанию (английский).