Формат даты по умолчанию в DatePicker - «гггг-мм-дд», но мне нужно «дд-мм-гггг». Это решение не работает для меня.
Набор инструментов WPF, изменение формата даты в DatePicker
Ответы (3)
Дата отображается с использованием CultureInfo.CurrentCulture
, то есть региональных настроек Windows, выбранных пользователем на панели управления, и кажется, что их нельзя изменить. Однако это не имеет особого значения, поскольку это предпочтительная настройка даты / времени.
Это довольно старый вопрос (неправильно помечен как "отвеченный"). Если вам нужно использовать определенный формат даты для элемента управления 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; я не помню точно, где это было (или я бы назвал автора), но в любом случае надеюсь, что это поможет!
Кирк
Если вы хотите дать такой формат своей дате, вы должны сделать что-то вроде этого:
DatePicker datetimepicker;
datetimepicker.SelectedDate.Value.ToString("yyyy-MM-dd");
datetimepicker.SelectedDate.Value
- это DateTime Object
, поэтому вы можете манипулировать, как хотите.