如何在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 之前就对其进行操作
有人能帮我吗?感谢
如果问题只是将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
类型。如果您只是想让DataGrid
将DateTime
显示为具有日期格式的字符串,则必须在绑定之前对其进行转换。使用转换器或绑定在该字段中具有预先格式化的日期字符串的对象。