WPF工具包,在DatePicker中更改日期格式

时间:2009-10-08 08:50:40

标签: c# wpf datepicker toolkit

DatePicker中的默认日期格式为“yyyy-mm-dd”,但我需要“dd-mm-yyyy”。 This one solution对我不起作用。

3 个答案:

答案 0 :(得分:4)

这是一个非常古老的问题(标记有些错误,因为“已回答”)。 如果您需要为WPF DatePicker控件使用特定的日期格式,但又不想打开它的源代码(事实上,可以下载),您始终可以指定整个UI的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帖子;我不记得确切的位置(或者我会把作者归功于),但无论如何,希望这有帮助!

柯克

答案 1 :(得分:3)

如果您希望将该格式提供给您的日期,您必须执行以下操作:

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

datetimepicker.SelectedDate.ValueDateTime Object,因此您可以根据需要进行操作。

答案 2 :(得分:1)

使用CultureInfo.CurrentCulture显示日期,即用户在控制面板中选择的Windows区域设置,似乎无法更改。但是它并不重要,因为它是用户首选的日期/时间设置。