是否可以格式化数据表的日期列?

考虑我有一个数据表dt ,它有一个DateofOrder列,

 DateofOrder 07/01/2010 07/05/2010 07/06/2010 

我想在DateOfOrderDateOfOrder这些日期格式化为此

 DateofOrder 01/Jul/2010 05/Jul/2010 06/Jul/2010 

任何建议..

最明智的做法是确保输入DataTable,此列的类型为DateTime。 然后,当您实际将值打印到屏幕时,您可以在该点设置格式,而不会破坏底层数据。

如果这不可行,这是我经常使用的扩展方法

 public static void Convert(this DataColumn column, Func conversion) { foreach(DataRow row in column.Table.Rows) { row[column] = conversion(row[column]); } } 

你可以在你的情况下使用:

 myTable.Columns["DateOfOrder"].Convert( val => DateTime.Parse(val.ToString()).ToString("dd/MMM/yyyy")); 

它仅适用于无类型的DataTables(例如,列类型需要是对象,或者可能是字符串)。

.ToString(“dd / MMM / yyyy”)(假设您的数据是DateTime类型)

在这里只是阐述saille的答案:

对于DateTime,格式不是问题。 DateTime实际上是从公元1月1日午夜起计数的滴答数。所以,实际上,它只是一个长的。 格式化只有在将其转换为字符串时才会成为问题。 因此,当你将数据表拉出数据表并准备输出格式时,你必须去处理格式化,或者将它作为字符串放入数据表中(我不建议这样做,以获得灵活性)目的)。 可以使用saille建议的DateTime上的.ToString调用来完成格式化.ToString("dd/MMM/yyyy")