Набор инструментов WPF, изменение формата даты в DatePicker

Формат даты по умолчанию в DatePicker - «гггг-мм-дд», но мне нужно «дд-мм-гггг». Это решение не работает для меня.


person Kamilos    schedule 08.10.2009    source источник


Ответы (3)


Дата отображается с использованием CultureInfo.CurrentCulture, то есть региональных настроек Windows, выбранных пользователем на панели управления, и кажется, что их нельзя изменить. Однако это не имеет особого значения, поскольку это предпочтительная настройка даты / времени.

person Julien Lebosquain    schedule 08.10.2009

Это довольно старый вопрос (неправильно помечен как "отвеченный"). Если вам нужно использовать определенный формат даты для элемента управления WPF DatePicker, но вы не хотите открывать для него исходный код (который, по сути, доступен для загрузки), вы всегда можете указать DateFormat всего вашего пользовательского интерфейса. или установите его для каждого элемента управления DatePicker.

В моем приложении в событии Application_Startup я использовал следующее:

Private Sub Application_Startup(ByVal sender As Object, ByVal e As System.Windows.StartupEventArgs) Handles MyBase.Startup

   ' other application initialization code here

   Dim culInfo As Globalization.CultureInfo = New System.Globalization.CultureInfo("en-us")
   Dim dtinfo As Globalization.DateTimeFormatInfo = New System.Globalization.DateTimeFormatInfo() With {
       .ShortDatePattern = "dd-MMM-yyyy",
       .ShortTimePattern = "hh:mm:ss tt",
       .TimeSeparator = ":",
       .MonthNames = System.Globalization.CultureInfo.InvariantCulture.DateTimeFormat.MonthNames(),
       .AbbreviatedMonthNames = System.Globalization.CultureInfo.InvariantCulture.DateTimeFormat.AbbreviatedMonthNames(),
       .DateSeparator = "-"}

 culInfo.DateTimeFormat = dtinfo
 System.Threading.Thread.CurrentThread.CurrentCulture = culInfo

Обратите внимание, что это установит формат для краткого формата даты повсюду в вашем приложении (это то, что я хотел, вместо того, чтобы проходить и применять культуру к каждому экземпляру средства выбора даты. Я придумал, как указано выше в другом сообщении StackOverflow; я не помню точно, где это было (или я бы назвал автора), но в любом случае надеюсь, что это поможет!

Кирк

person Kirkaiya    schedule 02.02.2011
comment
Спасибо за ответ. Проверенное было достаточно для моей проблемы. Но я попробую Ваш путь в будущих приложениях. Приветствую. - person Kamilos; 03.02.2011

Если вы хотите дать такой формат своей дате, вы должны сделать что-то вроде этого:

DatePicker datetimepicker;
datetimepicker.SelectedDate.Value.ToString("yyyy-MM-dd");

datetimepicker.SelectedDate.Value - это DateTime Object, поэтому вы можете манипулировать, как хотите.

person RICARDO A HERRERA E    schedule 18.10.2012
comment
Я считаю, что вопрос касался изменения формата отображения в самом datepicker. - person mikalai; 18.10.2012