データテーブル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")
を使用して実行できます。