【问题标题】:Force DateTime variable to display only the Date without converting ToString()强制 DateTime 变量仅显示日期而不转换 ToString()
【发布时间】:2013-09-30 21:33:37
【问题描述】:

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

我也读过this question。这个问题的措辞是我想要的,但答案仍然使用ToShortDateString()

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

【问题讨论】:

  • 你说你想“只显示日期” - 这是在哪里显示的?
  • 如何在不将其转换为字符串的情况下“显示”您的日期时间?
  • @ReedCopsey:它显示在绑定到我的对象的DataGrid 中。
  • @ReedCopsey:是的。编辑标签以反映这一点。
  • DateTime 是数据类型,未查看,通过将日期格式化为字符串来控制显示日期,据我所知,这始终是正确的。

标签: c# wpf datetime


【解决方案1】:

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

但是,为了在控件中显示DateTime,它将始终转换为字符串。最好的选择通常是尝试控制在您的DataGrid 中发生转换的方式:

<DataGrid AutoGenerateColumns="False">
    <DataGrid.Columns>
        <DataGridTextColumn Binding="{Binding TheDate, StringFormat={}{0:MM/dd/yyyy}}" />
    </DataGrid.Columns>
</DataGrid>

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

【讨论】:

  • 谢谢。这行得通。我仍在学习 WPF 的来龙去脉,还有这个StringFormat。哦,我的上帝,它会拯救我的理智。我收集到它正在将其转换为字符串以进行显示,但不知道如何格式化它。再次感谢。
【解决方案2】:

你可以使用string.Format():

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-08
    • 2014-04-07
    • 1970-01-01
    • 2020-02-26
    • 2021-07-24
    相关资源
    最近更新 更多