8

dtデータテーブルがあり、列があると考えてくださいDateofOrder

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

DateOfOrderこれらの日付を列にフォーマットしたい

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

なにか提案を..

4

4 に答える 4

13

最も賢明な方法は、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でのみ機能します(たとえば、列の型はオブジェクトである必要があり、場合によっては文字列である必要があります)。

于 2010-07-09T04:37:10.970 に答える
0

.ToString( "dd / MMM / yyyy")(データがDateTime型であると想定)

于 2010-07-09T04:31:26.970 に答える
0

ここでsailleの答えを説明するだけです:

DateTimeの場合、フォーマットは問題ではありません。DateTimeは、実際には、西暦1年1月1日の深夜からカウントアップするティック数です。したがって、実際には、これは非常に長い時間です。フォーマットは、文字列に変換するときにのみ問題になります。したがって、データテーブルから取り出して出力する準備ができたときにフォーマットを処理するか、データテーブルに文字列として配置する必要があります(柔軟性のため、これはお勧めしません)。目的)。フォーマットは、sailleが提案するDateTimeの.ToString呼び出しで行うことができます。.ToString("dd/MMM/yyyy")

于 2010-07-09T04:36:58.390 に答える