WPF日期picker - SelectedDate只是日期而不是时间

本文关键字:日期 时间 SelectedDate picker WPF | 更新日期: 2023-09-27 18:18:01

我知道这可能是重复的,但是使用。net框架,我似乎无法获得日期,而不是WPF DatePicker的时间。

我有这个:

DatePicker.SelectedDate.Value.Date

我相信使用"日期"属性将只返回日期,但它返回时间&;12:00:00&;。

我读https://learn.microsoft.com/en-us/dotnet/api/system.datetime.date所以我不确定我做错了什么。

我确定这是愚蠢的东西,一如既往,但没有帮助的眼睛跟我告诉我,我想我诉诸于SO!

WPF日期picker - SelectedDate只是日期而不是时间

DatePicker.SelectedDate.Value.DateDateTime的可空属性。因此,任何DateTime属性都有日期和时间部分。但在这种情况下,它不是用正确的值填充,它会给你默认值。如果想要获取日期,请使用以下代码

DatePicker.SelectedDate.Value.Date.ToShortDateString()

SelectedDate属性类型为Nullable<DateTime>,它为您提供日期,但时间被重置为12:00:00 midnight (00:00:00)

查看更多关于DatePicker。SelectedDate地产

from MSDN: DateTime。日期属性

返回的DateTime值的Kind属性值与当前实例的值相同。因为DateTime类型在一个类型中同时表示日期和时间,所以避免将date属性返回的日期误解为日期和时间是很重要的。有关详细信息,请参见DateTime主题中的"保存和恢复DateTime值"。

当您在代码中从日期选择器中选择日期时,您可以执行以下操作:

    DateTime from = From_Date_Picker.SelectedDate.Value.Date

下面的示例使用Date属性提取DateTime值的日期组件,其时间组件设置为零(或0:00:00,或午夜)。它还说明,根据显示DateTime值时使用的格式字符串,时间组件可以继续出现在格式化的输出中。

这就是说,根据格式(在这种情况下,我认为是DatePicker),时间组件可以出现。就像你的链接一样,输出是12:00 AM

所以检查DatePicker的格式/属性

在您的代码中,您可以做以下操作:

string shortDate = datePicker.SelectedDate.Value.ToShortDateString();

或者,如果你想指定日期的格式:

string formatDate = datePicker.SelectedDate.Value.ToString("yyyy-MM-dd");

这里datePicker是datePicker WPF的对象

检查您的Windows区域设置是否设置为24小时制。我猜它返回12AM