强制DateTime变量仅显示日期而不转换ToString()

时间:2013-09-30 21:33:38

标签: c# wpf datetime

我有一个对象属性DateTime Date。我试图将其保留为DateTime对象,但仅显示日期,即9/30/2013。我不想使用ToString()ToShortDateString()。我尝试过使用Date.Date,但这仍然显示日期和时间。有没有办法查看DateTime的日期而不将其转换为字符串?

我也读过this question。这个问题按照我的方式措辞,但答案仍然使用ToShortDateString()

这将显示在绑定到我的对象的DataGrid中。

2 个答案:

答案 0 :(得分:5)

根据定义,DateTime将始终具有日期和时间的值。您可以通过DateTime将其转换为代表日期部分(时间为午夜)的另一个DateTime.Date

但是,为了在控件中显示DateTime,它将始终转换为字符串。最佳选择通常是尝试控制DataGrid

中转换的发生方式
<DataGrid AutoGenerateColumns="False">
    <DataGrid.Columns>
        <DataGridTextColumn Binding="{Binding TheDate, StringFormat={}{0:MM/dd/yyyy}}" />
    </DataGrid.Columns>
</DataGrid>

这会导致绑定到“TheDate”的列在显示DateTime时使用自定义字符串格式。

答案 1 :(得分:0)

您可以使用string.Format()

var date = new DateTime(2013, 09, 30);
string.Format("{0:dd MM yyyy}", date); // 09 30 2013