dt
データテーブルがあり、列があると考えてくださいDateofOrder
。
DateofOrder
07/01/2010
07/05/2010
07/06/2010
DateOfOrder
これらの日付を列にフォーマットしたい
DateofOrder
01/Jul/2010
05/Jul/2010
06/Jul/2010
なにか提案を..
dt
データテーブルがあり、列があると考えてくださいDateofOrder
。
DateofOrder
07/01/2010
07/05/2010
07/06/2010
DateOfOrder
これらの日付を列にフォーマットしたい
DateofOrder
01/Jul/2010
05/Jul/2010
06/Jul/2010
なにか提案を..
最も賢明な方法は、DataTableが入力されていることを確認することです。この列は、DateTime型です。次に、実際に値を画面に出力するときに、基になるデータをいじることなく、その時点でフォーマットを設定できます。
それが不可能な場合は、私がよく使用する拡張方法を次に示します。
public static void Convert<T>(this DataColumn column, Func<object, T> 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"));
型指定されていないDataTableでのみ機能します(たとえば、列の型はオブジェクトである必要があり、場合によっては文字列である必要があります)。
.ToString( "dd / MMM / yyyy")(データがDateTime型であると想定)
ここでsailleの答えを説明するだけです:
DateTimeの場合、フォーマットは問題ではありません。DateTimeは、実際には、西暦1年1月1日の深夜からカウントアップするティック数です。したがって、実際には、これは非常に長い時間です。フォーマットは、文字列に変換するときにのみ問題になります。したがって、データテーブルから取り出して出力する準備ができたときにフォーマットを処理するか、データテーブルに文字列として配置する必要があります(柔軟性のため、これはお勧めしません)。目的)。フォーマットは、sailleが提案するDateTimeの.ToString呼び出しで行うことができます。.ToString("dd/MMM/yyyy")