如何在IQueryable记录的运行时将DateTime类型的字段转换为Date

本文关键字:类型 字段 转换 Date DateTime 运行时 IQueryable 记录 | 更新日期: 2023-09-27 17:59:36

在将源分配给DataGrid(不使用绑定/转换器)之前,我需要将具有DateTime的字段转换为Date(DateTime(2011-01-01 00:00:00)到Date(2011-01-02只是一个没有时间的字符串)),集合是一个IQueryable,但不确定如何执行。

让我重复一遍,我希望在将集合分配给DataGrid Source 之前就对其进行操作

有人能帮我吗?感谢

如何在IQueryable记录的运行时将DateTime类型的字段转换为Date

如果问题只是将DateTime转换为字符串表示,则可以使用ToString()并提供格式化字符串:

DateTime date = new DateTime(2011,01,01);
string dateAsString = date.ToString("YYYY-mm-dd");

请参阅MSDN页面中的"标准日期和时间格式字符串",以了解如何控制格式。

您也可以在绑定时执行转换,即绑定到DateTime字段,但指定一种字符串格式,如(在XAML中):

<TextBlock Text="{Binding Path=YourDateTimeField, StringFormat={}{0:d}"/>

例如,如果您正在询问其他问题,关于绑定到IQueryable,我们需要看到一些代码来演示您试图实现的目标。

为什么不能

var myGridData = myCollection.Select(c => new { TheDate = c.MyDate.ToShortDateString(), Field3 = c.SomethingElse, ... });

工作?

只需相应地格式化DateTime项目:

var results = timeCollection.Select(x => x.ToString("yyyy-MM-dd"));

我想我被你的问题弄糊涂了,因为C#中没有Date类型。如果您只是想让DataGridDateTime显示为具有日期格式的字符串,则必须在绑定之前对其进行转换。使用转换器或绑定在该字段中具有预先格式化的日期字符串的对象。