2017-02-13 78 views
1

我已經創建了datatable作爲我的gridview的數據源。但是,它顯示美國格式mm/dd/yyyy,我想顯示GB格式dd/mm/yyyy如何將DateTime 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

由於日期存儲爲日期時間而不是字符串,因此最好的辦法就是在「視圖」中處理它,或者以任何方式顯示日期時間。對於窗口,用戶控件,頁面等,它們都可以用自定義格式「顯示」日期時間。 –

+0

@KeyurPATEL某些列固定爲GB格式,有些我想將所有日期都設置爲GB格式 – MRWonderFuXker

回答

1

這可能做的伎倆爲您

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++; 
    } 
} 

因爲在.NET框架,DateTime結構沒有任何隱含的格式。它只有日期和時間值。當你嘗試設置它的格式時,你會得到它的字符串表示。

相關問題