好的,我的DataTable
中有一个DateTime
的列,它必须保持为DateTime
,以便正确排序。问题是我不能像我需要的那样以MM / dd / yyyy格式进行格式化。下面是我的方法的代码,格式化DateTable
并创建一个新的格式化的,这是我遇到格式问题的唯一列。它总是像01/15/2014 12:00:00 AM
private DataTable formatDataTable17(DataTable dt)
{
DataTable dtNew = new DataTable();
for (int i = 0; i < dt.Columns.Count; i++)
{
// Checks to see if the column name is date
// if it is, then change the datatype of that
// column to date time.
if(dt.Columns[i].ColumnName.ToLower() == "date")
{
dtNew.Columns.Add(dt.Columns[i].ColumnName, typeof(DateTime));
}
else
{
dtNew.Columns.Add(dt.Columns[i].ColumnName, typeof(String));
}
}
for (int i = 0; i < dt.Rows.Count; i++)
{
DataRow newRow = dtNew.NewRow();
//newRow[0] = dt.Rows[i][0]; //Date
newRow[0] = string.Format("{0:MM/dd/yyyy}", dt.Rows[i][0].ToString());
newRow[1] = dt.Rows[i][1]; //CICS Region
newRow[2] = dt.Rows[i][2]; //Transaction
newRow[3] = dt.Rows[i][3]; //LPAR
newRow[4] = String.Format("{0:0.000000}", dt.Rows[i][4]); //CPU Per Transaction
newRow[5] = String.Format("{0:###,###,##0}", dt.Rows[i][5]); //Transaction Count
newRow[6] = String.Format("{0:###,###,##0.00}", dt.Rows[i][6]); //MIPS Rate
newRow[7] = String.Format("{0:0.000000}", dt.Rows[i][7]); //MIPS Usage
dtNew.Rows.Add(newRow);
}
答案 0 :(得分:4)
DataTable
只是存储数据的地方。
为用户呈现(格式化)的方式应由您决定用于在DataTable
中显示数据的任何控件处理。
例如,如果您使用DataGridView
(WinForms),则可能包含以下代码:
dataGridView1.DataSource = dt;
dataGridView1.Columns["date"].DefaultCellStyle.Format = "MM/dd/yyyy";
您不需要formatDataTable17()
方法。
答案 1 :(得分:0)
你可以这样试试。
newRow[0] = Convert.ToDateTime(dt.Rows[i][0]).ToString("MM/dd/yyyy");