2017-02-13 6 views
1

私は、gridviewのデータソースとしてdatatableを作成しました。しかし、それは米国のフォーマットmm/dd/yyyyを示し、私はGBフォーマットdd/mm/yyyyを表示したいと思います。日時CultureInfoをDateTime変数に変更する方法

は、そこで私はこれを変更しようとしました:

foreach (DataRow row in DT.Rows) 
{ 
    if (Convert.ToString(row["Modified"]) != "") 
    { 
     DateTime LLISubmitDate = Convert.ToDateTime(row["Modified"]); 
     row["Modified"] = LLISubmitDate.ToString("dd/MM/yyyy"); 
    } 
} 
courseList.DataSource = DT; 
courseList.DataBind(); 

私が代わりに日時の文字列を追加するのでこれは明らかに誤りをもたらします。

これはどういう考えですか?

+3

DateTime自体にはフォーマットはありません(数字のみです)。データグリッドのように、どこかに日付を表​​示しようとしていますか?その場合は、データグリッドを正しい書式に設定する必要があります。 – vesan

+0

日付は文字列ではなくDateTimeとして保存されるので、あなたの最良の賭けは 'View 'またはそれを表示している方法で処理することです。ウィンドウ、ユーザーコントロール、ページなどの場合、それらはすべてカスタム形式でdatetimeを '表示'する方法を持っています。 –

+0

@ KeyurPATEL一部の列はGB形式で固定されていますが、一部はGB形式にも設定したいものもあります – MRWonderFuXker

答えて

1

では、.NET Frameworkは、DateTime構造は、任意の暗黙の形式を持っていないので、これはあなた

string d = ""; 
int i = 0; 
foreach (DataRow row in DT.Rows) 
{ 
    if (Convert.ToString(row["Modified"]) != "") 
    { 
     d = ((DateTime)row["Modified"]).ToString("dd/MM/yyyy", CultureInfo.InvariantCulture); 
     YourDataTable.Rows[i]["Modified"] = d; // I believe it should be courseList 
     i++; 
    } 
} 

のためのトリックを行う可能性があります。それはちょうど日付と時刻の値を持っています。それをフォーマットしようとすると、文字列表現が得られます。

関連する問題